我有一个网站,我想使用小于8的IE版本重定向用户。 我为IE 7创建了几种正则表达式,但每次重定向都会影响IE 11。
我不想要IE> 7个用户受影响。
以下是我的Apache重写:
RewriteCond %{HTTP_USER_AGENT} .*MSIE.7.*
RewriteRule ^index.php subindex.php
RewriteCond %{HTTP_USER_AGENT} .*MSIE.6.*
RewriteRule ^index.php subindex.php
RewriteCond %{HTTP_USER_AGENT} .*MSIE.5.*
RewriteRule ^index.php subindex.php
我也试过这个:
RewriteCond %{HTTP_USER_AGENT} "MSIE [5-7]" [NC]
RewriteRule ^index.php subindex.php
要添加问题,该站点是Intranet站点,目标用户浏览器处于Intranet站点的兼容模式。 我需要能够覆盖兼容模式,所以我将其添加到我的.htaccess:
Header set X-UA-Compatible "IE=edge,chrome=1"
并尝试了这个:
Header set X-UA-Compatible "IE=8,chrome=1"
只是为了踢,我也用8和9和10替换了边缘,看它是否有所作为。 没变。 IE 7打破了我的网站,所以我需要重定向这些用户,但在兼容模式下较新的IE用户需要看到非重定向网站。
有什么想法吗?
答案 0 :(得分:0)
User agent sniffing is evil,并浪费了服务器资源,这些资源最好在其他地方使用。让浏览器自己选择:
<!--[if lt IE 8]>
<meta http-equiv="refresh" content="0; url=http://mysite.tld/subindex.php">
<![endif]-->
conditional comments屏蔽来自任何非IE浏览器和IE10 +的这行代码,并且由于小于&#39;而被忽略。 IE8 / 9规则。元规则只对目标URL执行直接重定向(0秒延迟)。
Some bonus reading on why user agent sniffing is just... no.