PHP:最佳重定向技术


PHP: Best redirect technique

我目前正在使用优秀的移动检测脚本: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中