我有一个网站在IIS6的服务器上运行。该网站在端口80上配置了两个主机头绑定:
- mywebsite1 <-需要本地windows主机文件中的一个条目来伪造DNS条目
- mywebsite2.mydomain.com <-使用DNS
因此,从理论上讲,使用网络浏览器访问以下任一项:
- http://mywebsite1/
- http://mywebsite2.mydomain.com/
应该在我的浏览器中显示完全相同的网站。
但是,当我使用IE9查看http://mywebsite1/,浏览器发送到web服务器的UserAgent是这样的:
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服务器的UserAgent是这样的:
Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+Trident/5.0)
为什么IE9会在这两种情况下发送不同的UserAgent字符串?浏览器也在模拟这些用户代理的渲染规则,所以这会导致噩梦般的CSS问题!
附加信息:
- 我已将其包含在页首标签中
- 该网站是ASP.NET Framework 3
- web服务器是IIS 6
- 网络浏览器是IE9
- (如果你想让我澄清其他事情,请告诉我)
IE9在兼容性视图中报告Mozilla/4.0
时,您在查看http://mywebsite1/?(视图也可以由提供的html请求。)
这将更改useragent;然而,当我更改useragent时,它将只适用于我所在的网站,并且我在网上冲浪时,useragent将返回到默认状态。这就是我用来更改用户代理的代码
WebBrowser1.导航(txtAddressBar.Text,Nothing,Nothing,"用户代理:"&"Mozilla/5.0(Windows;U;Windows NT 5.1;en-US)AppleWebKit/532.2(KHTML,如Gecko)ChromePlus/4.0.222.3 Chrome/4.0.2.22.3 Safari/532.2")
此代码张贴为一行;然而,我还不知道如何在这里做到这一点。