mod_rewrite不适用于Apache2中的子域

我在mod_rewrite有一些麻烦。 所以我通过.htaccess来实现它,我可以在我的主要虚拟主机domain.com上工作 – 我想要它做的是重写http://domain.com强制它到https://domain.com ,它做得很好。 我想为具有以下redirect的一个IP使用基于名称的虚拟主机:

  http://domain.com  - > https://domain.com
 http://staging.domain.com  - > https://staging.domain.com
 http://test.domain.com  - > https://test.domain.com
 http://beta.domain.com  - > https://beta.domain.com 

domain.comredirect到https://domain.com ,但staging.domain.com不,虽然我可以访问https://staging.domain.com 。 .htaccess对于两者来说都是相同的,只是域名不同而已。 它似乎并没有为staging.domain.com做任何重写,我已经通过尝试将其重写到www.google.com进行了testing。

我有一个通配符DNSlogging,* .domain.com指向域IP。

有一种特殊的方式,我应该configuration虚拟主机来允许这个?

我一直在阅读Apache文档,它不支持多个基于SSL名称的虚拟主机。 但我可以访问https://domain.comhttps://staging.domain.com就好了。

有什么想法吗? 感谢大家对此的帮助。

你有“NameVirtualHost”指令吗? 你在你的虚拟主机configuration中使用它们吗?

另外请看看这个: http : //wiki.apache.org/httpd/NameBasedSSLVHosts

如果两个SSL域在同一个IP上运行,则只会使用一个encryption(证书),“客户端将收到证书不匹配警告,容易受到中间人攻击”。

RewriteEngine可以在全局和每个虚拟主机的基础上启用。 即使全局启用,这些选项默认情况下也不会进入虚拟主机。 您可能只需要在当前的虚拟主机中重新打开它。 RewriteEngine on (可能RewriteOptions inherit ,取决于你的configuration)在每个虚拟主机。