我在.htaccess
设置了一个规则来添加一个尾部斜杠,但是如果主机是https
,这会导致它通过http
重定向,但我没有#{1}}。明白为什么:
# add trailing slash
RewriteCond %{REQUEST_URI} ^\/([A-Za-z0-9\-\/]*[A-Za-z0-9\-]+)$
RewriteRule .* /%1/ [R=301,L]
因此,如果我请求https://www.example.com/some/page
,则会触发.htaccess
中的规则添加尾部斜杠,但会将我重定向到http://www.example.com/some/page/
。
如果以 https: // www.example.com/some/page请求页面,为什么上面的规则会将其重定向到 http: // www .example.com的/一些/页/?
如何在仍然使用正确的主机重定向时添加尾部斜杠?
答案 0 :(得分:1)
为什么不修改你的规则:
RewriteCond %{REQUEST_URI} ^\/([A-Za-z0-9\-\/]*[A-Za-z0-9\-]+)$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI}/ [R=301,L]
这也会强制使用 HTTPS ,这总是一件好事。 :)