簡體   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