我想使用HTTPS协议从任何方向重定向到我们的网站,但有些重定向它不起作用.我要这个:
http://www.site.co 至 https://www.site.cohttp://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]
Run Code Online (Sandbox Code Playgroud)
第二条规则不起作用.它会转到我们网站内的另一个方向,而不会重定向到HTTPS网站.
Pri*_*rix 46
试试这样:
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]
Run Code Online (Sandbox Code Playgroud)
这里唯一真正的区别是,首先我们从非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]
Run Code Online (Sandbox Code Playgroud)
小智 25
Prix的答案有效.要使其更具动态性,请使用SERVER_NAME和REQUEST_URI而不是静态域名.
RewriteEngine On
#we replace domain.com/$1 with %{SERVER_NAME}%{REQUEST_URI}.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*) https://www.%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
#here we dont use www as non www was already redirected to www.
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)
小智 5
抱歉,我没有足够的观点来评论,但 @prix 规则会带来不必要的重定向。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)
您可以在 GTMETRIX 上尝试http://domain.com/,您将收到此消息
"Avoid landing page redirects for the following chain of redirected URLs."
http://domain.com/
http://www.domain.com/
https://www.domain.com/
Run Code Online (Sandbox Code Playgroud)
为了防止这种情况,请转到第一个 RewriteRule 并在 http 末尾添加“s”。新的规则集将如下所示:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62235 次 |
| 最近记录: |