【发布时间】:2014-08-05 02:18:26
【问题描述】:
如果桌面用户打开移动网站,代码会将用户重定向到桌面网站。
<?php
// Apple iOS devices
$iPhone = strpos($_SERVER['HTTP_USER_AGENT'],'iPhone');
$iPod = strpos($_SERVER['HTTP_USER_AGENT'],'iPod');
$iPad = strpos($_SERVER['HTTP_USER_AGENT'],'iPad');
// Android devices
$Android = strpos($_SERVER['HTTP_USER_AGENT'],'Android');
// All mobile devices
$Mobile = strpos($_SERVER['HTTP_USER_AGENT'],'Mobile');
// BlackBerry devices
$BlackBerry = strpos($_SERVER['HTTP_USER_AGENT'],'BlackBerry');
// Nokia SymbianOS devices
$Symbian = strpos($_SERVER['HTTP_USER_AGENT'],'Symbian');
// HTC devices
$HTC = strpos($_SERVER['HTTP_USER_AGENT'],'HTC_');
// Windows Phone devices
$WP7 = strpos($_SERVER['HTTP_USER_AGENT'],'WP7');
$WP8 = strpos($_SERVER['HTTP_USER_AGENT'],'WP8');
// Browser's OS devices
$webOS = strpos($_SERVER['HTTP_USER_AGENT'],'webOS');
// Mobile browser (Opera, Firefox)
$Opera_M = strpos($_SERVER['HTTP_USER_AGENT'],'Opera M');
$Fennec = strpos($_SERVER['HTTP_USER_AGENT'],'Fennec/');
if ($iPhone || $iPod || $iPad || $Android || $Mobile || $BlackBerry || $Symbian || $HTC || $WP7 || $WP8 || $webOS || $Opera_M || $Fennec == true)
{
header('Location: http://m.website.com/');
//OR
echo "<script>window.location='http://m.website.com'</script>";
}
?>
我可以添加 if 和 else 将用户重定向到桌面网站,例如
else {header('Location: http://website.com/');
//OR
echo "<script>window.location='http://website.com'</script>";
}
else 部分似乎不起作用,因为桌面和移动设备上的浏览器显示太多重定向错误。 谢谢
【问题讨论】:
-
语法是
else {header('Location: http://website.com/');}- 另外,它应该可以工作。你遇到了什么“错误”? -
不能同时使用header和echo;很可能是您遇到错误的原因。使用其中一种。
-
在我添加 else {header('Location: website.com/');} 后,我得到这个网页在 Chrome 上出现重定向循环错误,页面没有正确重定向,在 Firefox 上,Firefox 有检测到服务器正在以永远不会完成的方式重定向对该地址的请求。此问题有时可能是由禁用或拒绝接受 cookie 引起的。 Firefox 上的错误
-
检查您希望重定向到的站点/页面是否不包含相反的内容,或者您的
.htaccess中是否包含某些内容。 -
在我将代码修改为 { header('Location: m.website.com/'); } else {header('Location: website.com/');} ?> 我仍然得到同样的错误
标签: php redirect mobile web desktop