2015-05-29 62 views
0

我們有多個具有相同代碼的網站。問題是這是在Firefox,Chrome等正常工作,但它不在IE中工作。htaccess重寫條件在Internet Explorer中不工作

我的建議是Internet Explorer發送一個不同的/不正確的HTTP_HOST。但我不明白爲什麼。任何人都可以幫助我走向正確的方向嗎? 我已張貼下面

htaccess的文件中的代碼應該做的: 1.檢查請求的網站地圖 2. WWW重定向到http 3.如果網站不website.nl使用HTTP 4.如果網站是website.nl使用HTTPS 5.使用的所有要求request.php文件

RewriteEngine On 

RewriteBase/

RewriteRule ^sitemap\.xml/?$ generate_sitemap.php [NC,L] 

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

RewriteCond %{HTTP_HOST} !^(www\.)?website.nl$ [NC] 
RewriteCond %{HTTP_HOST} ^$ 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteCond %{HTTP_HOST} ^(www\.)?website.nl$ [NC] 
RewriteCond %{HTTPS} !=on 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 


RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^((.|/)*)$ /request.php?path=$1 [QSA,L] 

回答

0

這是不太可能的Internet Explorer發送比Chrome和Firefox的另一個host頭。可能你看到的是Internet Explorer有一箇舊的和錯誤的重寫規則緩存(你使用301永久重定向,他們得到緩存在瀏覽器中)。也可能是Chrome和Firefox緩存了舊規則。

清除瀏覽器緩存或使用私人/無痕登錄模式,然後重試。

我可以推薦使用302臨時重定向,直到您確認所有規則正常工作。

如果上述方法幫助您解決問題:

你可以在這裏測試你重寫規則:http://htaccess.madewithlove.be

你可以通過按查看請求頭,包括Host頭,在Internet Explorer的開發者控制檯F12 /網絡視圖。

另外檢查Internet Explorer和調制解調器/路由器設置,以驗證您是否不小心使用代理。

+0

我發現它得到了無限循環。只在Internet Explorer中。它不斷連接到https://website.nl。所以我一直在執行角色https://%{HTTP_HOST}%{REQUEST_URI} [R = 301,L] –

+0

找到了解決方法:必須將HTTPS!= on更改爲RewriteCond%{SERVER_PORT}!443 謝謝 –