我目前正在使用优秀的移动检测脚本:detectmobilebrowsers.mobi
这个工作真的很好,但是,它重定向你的主站的每一个页面(包括任何查询参数)到你的移动网站的主页。
我需要的是:
http://www.mydomain.com/page.php?var1=X& var2 = Y
指向:
http://mobile.mydomain.com/page.php?var1=X& var2 = Y
我有多个页面,应该用查询字符串重定向到他们的移动版本。
解决这个问题的最好方法是什么?我想我应该:
检查$_SERVER['HTTP_REFERER']的页面和查询字符串,使用开关/案例循环通过10个左右的页面,我需要在主要和移动站点上匹配,然后改变移动检测脚本中的referer URL。
这有意义吗?
我一直在努力获得页面和查询…欢迎提出任何建议和想法
if ($mobile_is_detected) {
header('Location: http://mobile.mydomain.com' . $_SERVER['REQUEST_URI']);
exit;
}
除了Andy的回答之外,重定向时应该将响应状态设置为301。
注意,如果你在调用函数之前打印了HTML或echo
,你可能不会调用header()
。
if ($mobile_is_detected) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://mobile.mydomain.com' . $_SERVER['REQUEST_URI']);
}
您可以使用$_SERVER['QUERY_STRING']
重定向将查询字符串首先添加到重定向URL中