Apache 使用贪婪匹配重写规则,尝试将根目录重定向到页面,并将所有其他请求重写为https
我正在尝试使用apache2重写来执行两个功能Apache 使用贪婪匹配重写规则,尝试将根目录重定向到页面,并将所有其他请求重写为https,apache,mod-rewrite,url-rewriting,Apache,Mod Rewrite,Url Rewriting,我正在尝试使用apache2重写来执行两个功能 重写(或重定向)/(根目录)请求到特定页面:/index 端口80上的所有请求(包括/和/索引)都将重写为HTTPS 这是我失败的尝试 RewriteEngine On RewriteRule ^$ https://%{HTTP_HOST}%/index [R] RewriteCond %{REQUEST_URI} !^$ RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HO
RewriteEngine On
RewriteRule ^$ https://%{HTTP_HOST}%/index [R]
RewriteCond %{REQUEST_URI} !^$
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
我的猜测是,最后一条规则过于激进/贪婪(所有内容都在重写为https)-因此我试图通过添加一个不匹配根的RewriteCond来阻止根匹配,但它不起作用
编辑:我的方法错了吗?规则/条件中是否存在明显错误
重写cond%{REQUEST_URI}^$
这将始终匹配,%{REQUEST_URI}没有从中删除当前的每个目录前缀,就像您匹配每个目录重写规则所依据的隐式内容一样。下面添加斜杠。为完整起见,这里是最终配置:
RewriteEngine On
RewriteRule ^$ https://%{HTTP_HOST}%/index
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
想对否决票发表评论吗?我很乐意澄清这个问题,或者对提出的建议重新措辞。