Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:最佳重定向技术_Php - Fatal编程技术网

PHP:最佳重定向技术

PHP:最佳重定向技术,php,Php,我目前正在使用来自detectmobilebrowsers.mobi的优秀移动检测脚本 但是,它可以将主站点上的所有页面(包括任何查询参数)重定向到移动站点的主页 我需要的是: 致: 我有多个页面,应该用查询字符串重定向到它们的移动版本 最好的方法是什么?我想我应该: 检查$_服务器['HTTP\u REFERER']中的页面和查询字符串,使用开关/大小写循环浏览主站点和移动站点上需要匹配的大约10个页面,然后更改移动检测脚本中的REFERER URL 这有意义吗 我一直在努力获取页面和查询

我目前正在使用来自detectmobilebrowsers.mobi的优秀移动检测脚本

但是,它可以将主站点上的所有页面(包括任何查询参数)重定向到移动站点的主页

我需要的是:

致:

我有多个页面,应该用查询字符串重定向到它们的移动版本

最好的方法是什么?我想我应该:

检查$_服务器['HTTP\u REFERER']中的页面和查询字符串,使用开关/大小写循环浏览主站点和移动站点上需要匹配的大约10个页面,然后更改移动检测脚本中的REFERER URL

这有意义吗


我一直在努力获取页面和查询。。。欢迎任何建议和想法。

您可以使用
$\u服务器['QUERY\u STRING']
重定向,首先将查询字符串添加到重定向URL。

您可以使用
$\u服务器['QUERY\u STRING']
重定向,首先将查询字符串添加到重定向URL。

除了Andy的答案,重定向时,应将响应状态设置为301

if ($mobile_is_detected) {
    header('Location: http://mobile.mydomain.com' . $_SERVER['REQUEST_URI']);
    exit;
}
小心,如果在调用函数之前打印了任何HTML或
echo
ed任何内容,则不能调用
header()

if ($mobile_is_detected) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: http://mobile.mydomain.com' . $_SERVER['REQUEST_URI']);
}

除了Andy的回答外,重定向时还应将响应状态设置为301

小心,如果在调用函数之前打印了任何HTML或
echo
ed任何内容,则不能调用
header()

if ($mobile_is_detected) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: http://mobile.mydomain.com' . $_SERVER['REQUEST_URI']);
}

谢谢,尝试了,但是无法让页面显示引用页面中的变量。我需要更改全局设置吗?谢谢,尝试了,但无法让页面显示引用页面中的变量。我需要更改全局设置吗?谢谢Dime。为什么需要301?我允许移动用户选择返回主站点,如果他们愿意的话……301是告诉浏览器网页已经永久移动。它有助于从谷歌等搜索引擎建立索引。它可以帮助你保持你在谷歌排名中的位置,即使你移动了你的网页。如果您想给用户返回主站点的机会,那么您可能应该使用
标题(“HTTP/1.1 302临时移动”)好,明白了。此脚本仅重定向移动,搜索引擎应继续到主站点进行索引…是的,但搜索引擎不会受到影响,除非它们返回移动用户代理,在这种情况下,您希望它们受到影响。谢谢Dimme。为什么需要301?我允许移动用户选择返回主站点,如果他们愿意的话……301是告诉浏览器网页已经永久移动。它有助于从谷歌等搜索引擎建立索引。它可以帮助你保持你在谷歌排名中的位置,即使你移动了你的网页。如果您想给用户返回主站点的机会,那么您可能应该使用
标题(“HTTP/1.1 302临时移动”)好,明白了。这个脚本只重定向移动,搜索引擎应该继续到主站点进行索引…是的,但搜索引擎不会受到影响,除非他们返回移动用户代理,在这种情况下,你希望他们受到影响。安迪,谢谢,一如既往,解决方案比我想象的要简单。我只需要添加一些代码,以便仅对某些页面执行此操作。非常感谢。安迪,谢谢,解决办法总是比我想象的要简单。我只需要添加一些代码,以便仅对某些页面执行此操作。非常感谢。