2017-04-19 83 views
0

我遇到一些.htaccess重定向的問題,只能在某些情況下使用。HTTPS到HTTP的問題htaccess

我的代碼是

RewriteEngine On 
RewriteCond %{HTTPS} on 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

這裏是我的測試

https://www.example.com結果重定向到http://example.com

https://example.com什麼都不做

https://www.example.com/page-name重定向到http://example.com/page-name

https://example.com/page-name什麼都不做

這是一個WordPress站點和的.htaccess代碼坐在上面的WordPress的代碼。我也試了一下下面也和我得到相同的結果

回答

1

它看起來像沒有必須的SSL attatched到它,因此

RewriteCond %{HTTPS} on 

規則是無法正常工作的網站。

正因爲如此我去了這個方法來修復重定向並使其在所有的,我在問題中提到的測試用例工作。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] 
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301] 
0

使用此在您的.htaccess代替:

RewriteCond %{HTTPS} =on 
RewriteRule ^(.*)$ http://example.com%{REQUEST_URI} [R,L] 

我假設你想www被迫不顯示,因爲你沒有包括在URL中。如果是這樣的話,包括這個額外的條件,迫使它沒有顯示:

RewriteCond %{HTTP_HOST} ^www\. [NC,OR] 
RewriteCond %{HTTPS} =on 
RewriteRule ^(.*)$ http://example.com%{REQUEST_URI} [R,L] 

測試此之前,請務必清除緩存。

+0

不幸的是這沒有工作。我認爲網站上缺乏SSL是一個問題。 –