PHP 301重定向,不可能吗?

PHP 301重定向,不可能吗?,php,http-status-code-301,Php,Http Status Code 301,我一直试图做一个正确的301重定向,但没有做到。不管我怎么做,它总是302重定向 返回一个302: http_redirect("urlgoeshere", '', false, HTTP_REDIRECT_PERM) 返回一个302: header("HTTP/1.1 301 Moved Permanently"); header("Location: urlgoeshere"); 有人能解释为什么这些是302而不是301吗?服务器操作系统是linux,运行PHP/5.2.14。你自己试试

我一直试图做一个正确的301重定向,但没有做到。不管我怎么做,它总是302重定向

返回一个302:

http_redirect("urlgoeshere", '', false, HTTP_REDIRECT_PERM)
返回一个302:

header("HTTP/1.1 301 Moved Permanently");
header("Location: urlgoeshere");
有人能解释为什么这些是302而不是301吗?服务器操作系统是linux,运行PHP/5.2.14。你自己试试看

我会给你们一个网址试试。我正在使用YSlow和Googlebot进行测试

应为301:


实际上非常简单:

header('Location: ' . $url, true, 301);


如果您使用的是FastCGI,请尝试这样做:

header('Status: 301 Moved Permanently', true);
header('Location: ' . $url); // or header('Location: ' . $url, true, 301);

适合我:
$curlhttp://localhost/test.php -我
HTTP/1.1 301永久移动
我们需要有关您环境的更多信息。您是在Windows、Linux还是Mac上?显然IIS有一些问题…可能是重复的,请确保您没有忽略一些简单的事情,例如编辑错误的文件,上载到错误的服务器,等等…服务器在Linux中运行,所以它不完全是另一篇文章的重复,这篇文章涉及IIS。我尝试了这一点,但仍然不起作用。我将URL添加到一个显示302的实时页面。你也看到302了吗?@brant:我看到301了。你用什么来检查HTTP响应代码?很有趣。我正在Firefox中使用YSlow进行测试,并查看Googlebot在网站管理员工具中的响应。两者都为我显示了302。@brant:我不知道如何在YSlow中看到它,但我已经发布了FireBug看到的代码和HTTP响应的屏幕截图。您使用的是什么web服务器?@brant:您是将PHP作为CGI运行还是作为Apache模块运行?