【问题标题】:how to direct desktop website away from mobile website on desktop with php如何使用 php 将桌面网站从桌面移动网站引导到桌面
【发布时间】: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


【解决方案1】:

假设:

function isMobile() {
    /* return true if is on tablet / phone */
}

手机版:

if (!isMobile()) {
    header('Location: website.com');
    exit;
}

桌面版:

if (isMobile()) {
    header('Location: m.website.com');
    exit;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多