我试图通过三个选项将http重定向到https
但是,第二个选项显示来自http://www > https://www > https://
的双重定向
以下是我在.htaccess中的代码。是否可以进行双重定向?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
</IfModule>
您有2个重定向规则。重定向可能发生两次:
http://www.example.com
到https://www.example.com
https://www.example.com
到https://example.com
您可以使用此单一规则在单个301
重定向中执行这两项操作:
RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]
确保使用此规则替换两个规则并使用新的浏览器进行测试以避免旧的浏览器缓存。