簡體   English   中英

使用.htaccess進行HTTPS重定向的哪種方法最好?

[英]Which method of HTTPS redirecting using .htaccess is best?

我和許多人一樣,目前正在使用這種方法將所有流量從端口80重定向到https:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]

盡管我也成功使用了以下方法:

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

並已看到此方法有效,盡管當前未在任何地方使用它:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

有3個不錯的選擇(可能還有幾個),再加上Chrome和其他現在顯示非https版本的安全警告的信息,我想知道最好的方法是什么。 這些方法中的一種方法明顯優於另一種方法,還是特定於案例? 會出現“最佳實踐”嗎? 使用https作為新標准,是否有任何理由使用R而不是R=301 ,因為https重定向應該幾乎總是永久的?

我問,因為像許多自由職業者一樣,我並不是服務器配置方面的專家,但是在如今即使最小的網站成功啟動中,它仍然發揮着重要作用。

如果可以指定域名,最好的解決方案是將https和www結合使用:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [OR,NC]
RewriteCond %{HTTPS} off 
RewriteRule ^ https://www.exemple.com%{REQUEST_URI} [NE,R=301,L]

但是在任何情況下,您都不應首先重定向到不帶www的https或帶或不帶www的http。

並且您需要重定向301(使用[R = 301])而不是302(默認情況下使用[R])。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM