带有两个子目录的apache2 virtualhost配置

带有两个子目录的apache2 virtualhost配置,apache,redirect,virtualhost,Apache,Redirect,Virtualhost,我正在Ubuntu 14.04服务器上运行Apache2.4。它的用途是一个邮件服务器,所以它有postfix、dovecot和roundcube(以及其他东西)。我正在尝试配置Apache以提供我想要的页面,但失败了 我已安装SSL证书,并且工作正常。我想强制通过HTTPS进行所有访问,因此我有: <VirtualHost *:80> Redirect / https://mailserver.hni.ae/ </VirtualHost> 这就行了。我可以进入

我正在Ubuntu 14.04服务器上运行Apache2.4。它的用途是一个邮件服务器,所以它有postfix、dovecot和roundcube(以及其他东西)。我正在尝试配置Apache以提供我想要的页面,但失败了

我已安装SSL证书,并且工作正常。我想强制通过HTTPS进行所有访问,因此我有:

<VirtualHost *:80>
    Redirect / https://mailserver.hni.ae/
</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/aaaaaaaaaa…
提供服务。我怀疑我应该使用
RedirectMatch temp^/$…
指令,但也无法使其工作。可能与将
重定向到
:80
:443
冲突有关?当我使用
AllowOverride None
时,不涉及
.htaccess


我已经彻底阅读了Apache2.4文档,但就是想不出来。有什么建议吗?

您可以使用
重写规则。将此添加到VirtualHost:

RewriteEngine On
RewriteRule ^/(C/?|)$ /A [R,L]
确保
mod_rewrite
也已启用

说明:
Regex
^/(C/?)$
将匹配
/C
,可选地后跟一个
/
,或者只是
/
,即www.mydomain.com

的根目录,该目录在@arco444下运行良好,谢谢!是时候在apache.org上阅读这篇文章了,这样我才能理解它的工作原理:)谢谢!没问题,如果您满意,请接受答案!
RewriteEngine On
RewriteRule ^/(C/?|)$ /A [R,L]