下面是我的.htaccess文件。
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [L]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^axiom/?$ /axiom/publish.htm [L]
这导致重定向循环。如果我发表评论
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
页面会加载。我不知道我的错误在哪里,但我假设它在某处。
答案 0 :(得分:1)
此规则会将您重定向到您正在访问的同一网址 -
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
考虑您正在访问http://www.example.com/test/a.html。此重写规则与test / a.html和
匹配REQUIEST_URI = test/a.html
HTTP_HOST = www.exmpale.com
所以你要重定向到https://www.example.com/test/a.html
然后您匹配相同的条件并再次重定向到同一页面!
如果您尝试从http重定向到https,那么您需要添加另一个条件来检查它是来自http还是https
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [L]
RewriteRule ^axiom/?$ /axiom/publish.htm [L]
RewriteCond %{HTTPS} ^off$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]