WordPress在Apache主機下強迫HTTP重定向到HTTPS
根據本文停止操縱前,請注重兩點:
- 確保您的網站已設置裝備擺設好ssl證書并開啟了https拜候。
- 確保您的主機或辦事器的運轉環境是阿帕奇(Apache)
若是知足下面的兩個前提,并且想將http強迫重定向到https,那就能夠參考咱們的文章停止設置。
Apache環境下設置裝備擺設重定向法則,普通都經由過程 .htaccess
文件停止設置裝備擺設,以是,在起頭之前,倡議您先看下咱們之前的文章《網站辦理員和Web開辟職員.htaccess入門指南》
注重:瀏覽器緩存能夠會致使沒法準確看到設置裝備擺設失效,以是為確保重定向準確無誤,請務必在起頭每一個代碼測試之前斷根瀏覽器cookie緩和存。
HTTP重定向到HTTPS
若是您的WordPress網站能夠間接經由過程http://www.domain.com
停止拜候,并且您要將一切拜候者從HTTP重定向到HTTPS,那您能夠利用下面兩個選項的設置裝備擺設代碼之一:
選項1:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
選項2:
RewriteEngine On
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
申明
選項1和選項2都能夠將任何拜候http://www.domain.com
重定向到http://www.domain.com
選項1代碼將查抄毗連是不是為TLS / SSL,若是不是,設置重定向;而選項2代碼將查抄站點是不是在 80
端口上運轉,若是是,設置重定向。
注重:凡是最好利用選項1的代碼。語法加倍了然,并且不管端標語若何,它都將重定向到HTTPS,由于從手藝上講,站點能夠在
80
之外的其余端口停止拜候。
“非www”到“www”和HTTP到HTTPS
若是要強迫將“非www”強迫為“www”,并將HTTP強迫為HTTPS,則上述.htaccess代碼將沒法知足請求。
為了明白起見,若是您的方針是重定向以下網址:
-
http://www.domain.com
-
http://domain.com
到:
-
https://www.domain.com
那末,您將須要利用下面的.htaccess代碼。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
RewriteCond %{HTTPS} !on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
申明
起首,它將一切“非www”重定向到“www”,而后再查抄HTTPS,確保終究成果是:www + HTTPS。
“非www”到“www”和HTTP到HTTPS(在子文件夾中)
此刻,若是您在一個子文件夾(即www.domain.com/blog/
)中托管WordPress網站,則上述.htaccess代碼將沒法完善運轉。
此處的方針是將一切網址(不管是首頁仍是文章頁)都重定向到www + HTTPS 網址。
讓咱們看一下各類環境下的能夠性。
前提1
咱們須要重定向以下一切網址:
-
http://domain.com
-
http://www.domain.com
-
http://domain.com/blog/
-
http://www.domain.com/blog/
同一為以下網址:
-
https://www.domain.com/blog/
前提2
偏重定向以下網址:
-
http://domain.com/blog/example-page/
-
http://www.domain.com/blog/example-page/
到:
-
https://www.domain.com/blog/example-page/
當您的WordPress裝置在子文件夾(比方 /blog/
)中時,您將有兩個.htaccess文件,即在子文件夾內部有一個.htaccess文件,而在裝置WordPress的文件夾內部有一個.htaccess文件。咱們將須要同時變動它們。
.htaccess blog/ blog/.htaccess
子文件夾外的 .htaccess
將以下代碼拔出子文件夾內部的.htaccess中。
RewriteEngine On
### non-www to www, http to https
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^domain.com$ [OR]
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
### subfolder
RewriteRule ^$ /blog/ [R=301]
這是這段代碼先確保利用HTTPS將域名重定向到www,而后將其重定向到子文件夾。這將知足下面提到前提1,但還不知足前提2。
在子文件夾內的 .htaccess
接上去,咱們將須要變動子文件夾中的.htaccess代碼。
默許環境下,它看起來應當像如許:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
將以下代碼放在 “# BEGIN WordPress” 的上方
<IfModule mod_rewrite.c>
RewriteEngine On
## http to https
RewriteCond %{HTTPS} !on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
有了這兩套代碼,它將確保輸出的一切網址都將包羅在www和HTTPS中。
熱點瀏覽保舉:
圖文精選:
-
WordPress慣例根基設置
在裝置好Wordpress后,都必須對WP停止須要的慣例設置裝備擺設,設置裝備擺設后再宣布文章。...
-
WordPress毗連不了數據庫
中文 : 數據庫毗連時犯錯 英文 : Error establishing a database connection 簡略了然一句話...