我有一個網站在IIS6的服務器上運行。該網站配置了兩個hostheader綁定在端口80:與IE9不一致的UserAgent字符串
- mywebsite1< - 要求在本地Windows中的條目hosts文件僞造DNS條目
- mywebsite2.mydomain.com< - 使用DNS
因此,理論上使用網絡瀏覽器來訪問:
...都應該表現出我的瀏覽器完全一樣的網站。
然而,當我使用IE9查看http://mywebsite1/,瀏覽器發送到Web服務器的用戶代理是這樣的:
Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+Trident/5.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+Tablet+PC+2.0;+MS-RTC+LM+8;+OfficeLiveConnector.1.5;+OfficeLivePatch.1.3;+.NET4.0C)
但是當我使用IE9查看http://mywebsite2.mydomain.com/,用戶代理的瀏覽器發送到Web服務器是這樣的:
Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+Trident/5.0)
爲什麼IE9在這兩種情況下發送不同的UserAgent字符串?瀏覽器也在模擬這些用戶代理的渲染規則,所以這會導致噩夢CSS問題!
附加信息:
- 我已經包含在頁頭標記。
- 該網站是ASP.NET框架3.
- Web服務器是IIS 6
- Web瀏覽器IE9是。
- (讓我知道如果你要我澄清別的)查看您的http://mywebsite1/時
啊是的,這使得兩個URL一致,但實際上它是另一個顯示「破損頁面」圖標的主機頭版本。 http:// mywebsite1 /不顯示「破損的頁面」圖標。是什麼觸發了在IE9中顯示的破損頁面? – BG100 2011-06-06 16:16:30
來自服務器的響應頭或HTML中的元標記可以做到這一點,或者如果你誤點擊並設置視圖,它會堅持 - 看看@ http://stackoverflow.com/questions/3726357/why-does -ie9-switch-to-compatibility-mode-on-my- – 2011-06-06 16:19:30
完美。謝謝你的幫助。 – BG100 2011-06-06 16:20:44