【发布时间】:2012-02-04 07:18:48
【问题描述】:
我有这个简单的重写规则,它在 http 下可以正常工作:
RewriteCond %{HTTP_HOST} ^www\.siku-siku\.com$
RewriteRule ^/work/all.html /portfolio/ [L,R=301]
但是,当我在 https 上时,该规则并未生效。我将规则集修改为以下但无济于事。
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.siku-siku\.com$
RewriteRule ^/work/all.html /portfolio/ [L,R=301]
如何使该规则同时适用于 http 和 https?如果我需要提供更多信息,请告诉我。
【问题讨论】:
-
它是 .htaccess 还是 vhost?如果是虚拟主机,只需将重写规则放在一个单独的文件中,并将其源到两个虚拟主机中
-
这是一个虚拟主机。 @fge:您是指非ssl 和ssl 的vhost 吗?抱歉,这听起来可能很基础,但我刚刚开始熟悉 Apache mod-rewrite。
-
嗯,mod_rewrite 指令和其他指令一样,如果你将它们放在另一个文件中,并且
Include这个文件来自另一个文件,它会执行此操作。所以是的,只需将规则写入另一个文件中,该文件同时包含在 SSL 和非 SSL 虚拟主机中(删除 HTTPS 上的RewriteCond)。 -
+1 感谢您的进一步澄清。
标签: apache http mod-rewrite https