我有多个重写规则,如我网站上的那个
^product/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)$ /index.php?action=product&category=$1&type=$2
我还安装了自签名ssl证书,并且有几页php重定向到https。当我在这样的https页面上并单击与上述重写规则匹配的链接时,我最终会找到“未找到”错误页面
如何告诉apache应该相对于http读取所有重写规则,而不是https?
编辑: 我通过在443虚拟主机
下添加重写规则的副本来对其进行排序答案 0 :(得分:0)
假设您的Apache在标准端口上提供HTTPS,您可以在规则之前添加条件:
RewriteCond %{SERVER_PORT} =443
RewriteRule ...
编辑:还有另一个变量,您可以检查(它也在documentation中):
HTTPS
如果连接使用SSL / TLS,则包含文本“on”,否则包含“off”。 (无论是否加载了mod_ssl,都可以安全地使用此变量。)
所以这应该更好,无论SSL交付哪个端口:
RewriteCond %{HTTPS} =off
RewriteRule ...
答案 1 :(得分:0)