簡體   English   中英

將所有HTTP請求(非www和www,子域)重定向到HTTPS

[英]Redirect all HTTP requests (non-www & www, subdomains) to HTTPS

我希望能夠將所有訪問者重定向到網站及其子域到HTTPS,如下所示:

其他重定向:

重定向應該是可緩存的HTTP 301重定向。 使用的配置是Apache 2.4.10 + mod-spdy,具有嚴格的傳輸安全性(加上通配SSL證書)。

當前在.htaccess中使用以下命令:

RewriteCond %{SERVER_PORT} !^443
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^ "https://www.example.com%{REQUEST_URI}" [R=301,L]

RewriteCond %{SERVER_PORT} !^443
RewriteCond %{HTTP_HOST} ^sub\.example\.com$
RewriteRule ^ "https://sub.example.com%{REQUEST_URI}" [R=301,L]

我一直在使用spdycheck.org對此進行測試,它對於主域和子域都工作正常,我得到以下消息:

允許HTTP流量

仍然可以通過HTTP訪問該網站。 HTTP沒有提供使用任何其他協議(如SPDY)的廣泛實現的機制。 只有使用NPN Extension的SSL / TLS上的流量才能通過SPDY進行優化。 通過允許HTTP流量,該網站甚至沒有向具有SPDY功能的瀏覽器提供使用SPDY的選擇。 如果可能,此網站應將所有http://重定向到https://,最好使用可緩存的HTTP 301重定向。

什么是實現此目的的好方法? 我也可以根據需要修改httpd.conf。

如果要在httpd.conf中執行此操作,請輸入以下內容:

<VirtualHost _default_:80>
  RewriteEngine On
  RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NE,L,R=301]
</VirtualHost>

在所有虛擬主機之后,並確保其他虛擬主機僅是端口443。 這將使此重定向成為全局http虛擬主機,它將每個頁面分別重定向到HTTPS並提供301重定向。

暫無
暫無

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

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