PHP重定向应适用于IE 8及更低版本。版本9工作正常,但IE 10.0不能使用此代码(看起来像IE 10.0被解雇等):
if ( preg_match("/(?i)msie [1-8]/",$_SERVER['HTTP_USER_AGENT'])) {
header("Location: http://www.XYXYXYX.com");
}
我的目标是,重定向应仅适用于MS IE 8及以下版本。
非常感谢。
EDIT2 / SOLUTION:
我应该将我的代码更改为:
if ( preg_match("/(?i)msie [1-8]\./",$_SERVER['HTTP_USER_AGENT'])) {
header("Location: http://www.XYXYXYX.com");
}
尾随点确保版本号只有一位数。
答案 0 :(得分:3)
我认为更可靠的重定向IE的方法是使用条件HTML语句通过javascript来实现:
<!--[if lte IE8]>
<script>
window.location.assign('http://www.XYXYXYX.com')
</script>
<![endif]-->
答案 1 :(得分:1)
确保检查完整版本号。
if ( preg_match("/(?i)msie [1-8]\.0/",$_SERVER['HTTP_USER_AGENT'])) {
header("Location: http://www.XYXYXYX.com");
}
请注意要检查的“.0”后缀。这样,您永远不需要为可能出现的10,20,30甚至80版本再次更改代码。
啊,好吧,IE 5.5一旦发布......
if ( preg_match("/(?i)msie [1-8]\./",$_SERVER['HTTP_USER_AGENT'])) {
header("Location: http://www.XYXYXYX.com");
}
检查一位数后,有一个点。如果它不是一个点,它可能是一个两位数版本号的数字,如“10”。
答案 2 :(得分:-1)
preg_match('/(?i)msie (6|7|8|9|10)/',$_SERVER['HTTP_USER_AGENT'])
或
if(preg_match('/(?i)msie [1-9]/',$_SERVER['HTTP_USER_AGENT']))
{
// if IE <= 10
echo "version is less than 10"; //rest of your code
} else if(preg_match('/(?i)msie [10]/',$_SERVER['HTTP_USER_AGENT']))
{
// if IE = 10
echo "version is IE 10"; //rest of your code
}
else
{
// if not 10
echo " other browser"; //rest of your code
}