我想使用 HTTPS 协议(protocol)从任何方向重定向到我们的网站,但有些重定向不起作用。我要这个:
http://www.site.co
至 https://www.site.co
http://site.co
至 https://www.site.co
这是我的 htaccess:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
第二条规则不起作用。它会在我们的站点内转到另一个方向,并且不会重定向到 HTTPS 站点。
最佳答案
试试这样:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
这里唯一真正的区别是,首先我们从非 WWW 重定向到 WWW,然后我们检查 HTTPS 并重定向它。
如果它不起作用,试试这个:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
关于.htaccess - 重定向到 HTTP 非 www 到 HTTPS www htaccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17453412/