避免登陆页面重定向 - 强制www和https
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了避免登陆页面重定向 - 强制www和https相关的知识,希望对你有一定的参考价值。
我正在尝试将非www转发到www并将http转发给https。 我尝试了其他解决方案,我可以开始工作的唯一代码如下:
RewriteEngine on
RewriteCond %HTTP:X-Forwarded-Proto !https
RewriteRule ^(.*)$ https://%HTTP_HOST/$1 [R=301,L]
RewriteCond %HTTP_HOST ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
更新:(像@Croises所述) - 首先重定向www然后重新定位https
RewriteEngine on
### redirect non-www to www
RewriteCond %HTTP_HOST ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
### redirect non-http to https
RewriteCond %HTTP:X-Forwarded-Proto !https
RewriteRule ^(.*)$ https://%HTTP_HOST/$1 [R=301,L]
答案
在https之前重写域:
RewriteEngine on
RewriteCond %HTTP_HOST !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
RewriteCond %HTTP:X-Forwarded-Proto !https
RewriteRule ^(.*)$ https://%HTTP_HOST/$1 [R=301,L]
另一答案
您可以对重定向使用此单一规则:
RewriteEngine on
RewriteCond %HTTP_HOST !^www\. [NC,OR]
RewriteCond %HTTP:X-Forwarded-Proto !https
RewriteCond %HTTP_HOST ^(?:www\.)?(.+) [NC]
RewriteRule ^ https://www.%1%REQUEST_URI [L,R=301,NE]
在测试此更改之前清除浏览器缓存
以上是关于避免登陆页面重定向 - 强制www和https的主要内容,如果未能解决你的问题,请参考以下文章