【发布时间】:2014-10-14 01:10:58
【问题描述】:
我在 Ubuntu 14.04 服务器上运行 Apache 2.4。它的目的是一个邮件服务器,所以它上面有 postfix、dovecot 和 roundcube(以及其他东西)。我正在尝试配置 Apache 以提供我想要的页面,但失败了。
我已安装 SSL 证书并且工作正常。我想强制通过 HTTPS 进行所有访问,所以我有:
<VirtualHost *:80>
Redirect / https://mailserver.hni.ae/
</VirtualHost>
要提供的两组文件都在/var/www/html 下,第一组是/var/www/html/A,另一组是/var/www/html/B(比方说)。我已将我的/etc/apache2/sites-available/000-default.conf(有一个指向./sites-enabled 的符号链接)配置为:
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/ssl/private/mycert.crt
SSLCertificateKeyFile /etc/ssl/private/mycert.key
ServerAdmin webmaster@mydomain.com
ServerName www.mydomain.com
DocumentRoot /var/www/html/
DirectoryIndex index.php
<Directory /var/www/html/A>
Options FollowSymLinks
AllowOverride None
Order Allow,Deny
Allow from all
</Directory>
<Directory /var/www/html/B>
Options FollowSymLinks
AllowOverride None
Order Deny,Allow
Deny from All
Allow from 192.168.1.1
</Directory>
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
这行得通。我可以转到www.mydomain.com/B,它为这些页面提供登录页面(仅当我从指定的 IP 地址访问时),www.mydomain.com/A 并从应用 A 登录页面。
我的问题:我希望能够转到www.mydomain.com/C 并且只是简单的www.mydomain.com 并被重定向到www.mydomain.com/A 但是当我使用Redirect ... 时,服务器进入循环并尝试服务www.mydomain.com/AAAAAAA... .我怀疑我应该使用RedirectMatch temp ^/$... 指令,但也不能让它工作。也许与Redirect 的:80 到:443 发生冲突有关?因为我使用的是AllowOverride None,所以没有涉及.htaccess。
我已经彻底阅读了 Apache 2.4 文档,但就是不明白。有什么建议吗?
【问题讨论】:
标签: apache redirect virtualhost