繁体   English   中英

http:// 到 https://www 重定向不起作用

[英]http:// to https://www redirect not working

我想将http://重定向到https://www 现在它正在重定向https://然后https://www

我正在使用 siteground 我尝试了 StackOverflow 上给出的许多答案。

我试过的代码示例:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
<IfModule mod_rewrite.c>
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

在检查 https 条件后,您很接近您不需要使用OR条件,请您尝试以下操作。 以下规则应将 https 应用于带/不带www的非http url 。

请确保在测试 URL 之前清除浏览器缓存。

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]

如果您使用Cloudflare CDN或任何其他代理服务器,则需要匹配%{HTTP:X-Forwarded-Proto}变量以检测 URL 方案。 您可以使用以下规则在单个请求httphttps-noWWW重定向到https://www

 RewriteEngine on

RewriteCond %{HTTP:X-Forwarded-Proto} http$ [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule (.*) https://www.%1%{REQUEST_URI} [L,R=301]

确保在测试此规则之前清除浏览器缓存。

这是完美的重定向

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这里提到的重定向规则是完美的,但只有在禁用服务器端重定向时才有效。

在您的站点托管帐户中转到站点工具>安全> HTTPS强制并禁用它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM