伙計們,我在將站點從 HTTP 遷移到 HTTPS 時遇到了一點問題。
我想強制所有人 www https
http://example.com->https://www.example.com(作業)http://www.example.com->https.www.example.com(不作業)
上面的示例回傳帶有兩個 www.www 的 url
https.www.www.example.com
我的代碼
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
我做錯了什么?
uj5u.com熱心網友回復:
您可以使用此重定向將重定向合并http -> https為www一個規則:
# add www and turn on https in a single redirect rule
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(. )$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=302,L,NE]
確認它作業正常后,替換R=302為R=301. 測驗規則時避免使用R=301(永久重定向) 。mod_rewrite
另一方面,您的規則是嘗試在重定向后保持相同的方案(http 或 https)。您的規則也適用于www丟失的情況。OR正如我在回答中所示,您需要在 2 個條件之間使用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/508410.html
