Php 标头未使用所有传入的值

Php 标头未使用所有传入的值,php,redirect,Php,Redirect,我需要重定向一些URL 以前我有 http://mysite.com/foobar/?section_id=1234 这些都是没有意义的 http://mysite.com/foobar/1234 我在代码中添加以下内容以处理访问旧url的尝试: $section_id = filter_input(INPUT_GET, 'section_id', FILTER_SANITIZE_NUMBER_INT); if ( $section_id ) { header( "HTTP/1.1

我需要重定向一些URL

以前我有

http://mysite.com/foobar/?section_id=1234
这些都是没有意义的

http://mysite.com/foobar/1234
我在代码中添加以下内容以处理访问旧url的尝试:

$section_id = filter_input(INPUT_GET, 'section_id', FILTER_SANITIZE_NUMBER_INT);

if ( $section_id ) {
    header( "HTTP/1.1 301 Moved Permanently" );
    header( "Location: ".$_SERVER["SERVER_NAME"]."/foobar/".$section_id );
}
问题是,重定向后,url为:

http://mysite.com/foobar
需要的id不在那里

在那
if
语句中,如果我这样做

echo "Location: ".$_SERVER["SERVER_NAME"]."/foobar/".$section_id;
我得到:

http://mysite.com/foobar/1234
但是重定向仍然无法包括
1234
部分

这是为什么?我如何让它按需要重定向


lynx-head-dump的输出(即,我认为它是正确的)

HTTP/1.1 301永久移动
日期:2012年2月20日星期一18:55:09 GMT
服务器:Apache/2.2.3(CentOS)
X-Powered-By:PHP/5.2.6
设置Cookie:PHPSESSID=c35123456;路径=/
到期时间:1981年11月19日星期四格林威治标准时间08:52:00
缓存控制:无存储,无缓存,必须重新验证,后检查=0,预检查=0
Pragma:没有缓存
X-Pingback:http://mysite.com/xmlrpc.php
链接:;rel=短链接
地点:mysite.com/foobar/1234
改变:接受编码
连接:关闭
内容类型:text/html;字符集=UTF-8

位置标题必须有一个绝对有效的URL作为其值。即,必须以http://开头


编辑:如果您确认
http://mysite.com/foobar/1234
不会将您重定向到
http://mysite.com/foobar/
<代码>$lynx-头部-卸载http://mysite.com/foobar/1234可以帮助您确定这一点,同样也可以确定您的标题是否正确。@我确实尝试过,而且看起来很正确(我将输出添加到问题后)。我确实看到一个错误,
位置
标题必须有一个绝对有效的URL作为其值。即,必须以http://开头。我不认为这是你问题的原因,但事实上这就是问题所在!谢谢你。让这是一个正确的答案,这样我就可以将它标记为“已接受”。因为任何人阅读这篇文章都会看到我的
位置
标题(在lynx输出示例中)不是以
http://
开头的。这把它修好了。
HTTP/1.1 301 Moved Permanently
Date: Mon, 20 Feb 2012 18:55:09 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.2.6
Set-Cookie: PHPSESSID=c35123456; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-Pingback: http://mysite.com/xmlrpc.php
Link: <http://wp.me/mysite>; rel=shortlink
Location: mysite.com/foobar/1234
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=UTF-8