php 301 重定向实际上是在执行 302 重定向
Posted
技术标签:
【中文标题】php 301 重定向实际上是在执行 302 重定向【英文标题】:php 301 redirects actually doing a 302 redirect 【发布时间】:2010-12-06 10:37:27 【问题描述】:我一直在谷歌上搜索,但似乎没有人知道答案。
这篇文章很好地描述了这个问题:
http://www.mail-archive.com/php-general@lists.php.net/msg198576.html
服务器是 Windows 2008 快速CGI PHP 5
【问题讨论】:
【参考方案1】:我这里没有 PHP 来测试这个,但这不会产生 301 吗?
header('Location: http://www.example.com/', true, 301);
【讨论】:
你会这么认为,但不,它会产生 302 重定向 我很想删除这个答案,但我认为最好把它留在这里,这样其他人就不会提出同样的建议。【参考方案2】:它应该由 R. Bemrose 给出;这是通常的示例代码。我猜你的 PHP 执行环境有些地方不太对劲。
您可以尝试的另一种方法是传回状态行的 CGI 标准方法:
header('Status: 301 Moved permanently');
header('Location: http://www.example.com/');
【讨论】:
应该可以,我希望它可以,但事实并非如此。我读到这可能是 FastCGI 模块中的一个错误,但我找不到任何可以修复它的东西。【参考方案3】:目前看来,唯一的答案是在使用 PHP 时不要在 IIS7 上使用 FastCGI(因为 FastCGI 中的一个错误)——这是垃圾,因为它非常快。使用 isapi 可以让 301 重定向正常工作,但速度不快。
【讨论】:
【参考方案4】:微软为此发布了一个修复程序: http://www.microsoft.com/downloads/en/results.aspx?freetext=980363&displaylang=en&stype=s_basic
【讨论】:
以上是关于php 301 重定向实际上是在执行 302 重定向的主要内容,如果未能解决你的问题,请参考以下文章
http 301 302 303 307 308 傻傻分不清