2017-09-22 65 views
0

因此,我的網站項目中有一個HTTPS存在問題。當我在桌面版Chrome/Opera/Firefox上打開它時,它工作正常,但在iPhone Safari/Chrome上它返回錯誤「太多重定向」。這隻發生在iPhone上。這裏是一個要重定向HTTP到HTTPS和www到非www的.htaccess文件內容(這是在文件的頂部,有在整個文件中沒有重定向數據):iPhone Safari/Chrome上的重定向過多

RewriteCond %{HTTPS} off 
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ https://%1/$1 [R=301,L] 

爲什麼我注意到一個HTTPS ?因爲當我從文件中刪除RewriteRule時,它加載沒有問題。

首先我只在Safari上試過。我刪除了互聯網的歷史和餅乾 - 沒有幫助。我下載了全新的Chrome並出現了相同的問題。所以我的問題只發生在HTTPS上...爲什麼?

回答

0

使用[OR]標誌就合併重定向到一個:

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

這結合了你的規則,應該從投擲過多的重定向錯誤停止服務器。第一個條件檢查HTTPs是否打開,第二個條件檢查是否存在www

如果其中任一條件失敗,它將使用301重定向來重寫URL以使用HTTP並刪除www

確保您在之前先清除緩存,然後再對其進行測試。

+0

我試過了,但還是同樣的結果:(您可以看到網站:wcbidet.eu(現在有應用你的建議,我改變了example.com) – debute

0

我固定它通過使用下面的方法

RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
+0

我目前的狀況是'RewriteCond%{SERVER_PORT} 80',這是非常相同的東西:) – debute

+0

我的意思是%{SERVER_PORT}將工作,而不是%{HTTPS} :) –