【问题标题】:Non Parsed Headers in PHPPHP中的非解析标头
【发布时间】:2011-04-06 11:24:55
【问题描述】:

在使用 CGI 程序并设置重定向到返回 http 302(对象已移动)的页面时,有一个 IIS 错误会导致标题出现问题。结果是 IIS 不解析标头,因此如果您尝试设置 cookie,它将无法正常工作。见KB Article

它说解决方案是使用 -nph(非解析标题)启动 EXE CGI - 但我不确定它是否适用于 PHP。我尝试将它添加到我的 php 文件并手动构建标题,但这对我不起作用..

有人遇到过这个问题吗?有什么好的解决方法吗?

【问题讨论】:

    标签: php iis


    【解决方案1】:

    我不完全确定你是如何看待现代这个错误的。

    首先,Q17...,呃,我的意思是,KB176113 是在 1997 发布的。这些示例将 IIS 2.0 列为受影响的产品,并且文章本身声称​​仅 版本 3-5 受到影响。除非您在 Windows 2000 上运行您的网站,否则您没有使用 IIS5。这篇文章和谷歌的一些时间都表明这个问题在 IIS6 及更高版本中已完全修复。

    其次,该错误仅影响 CGI 脚本。如果您将 PHP 与 IIS 一起使用,那么您要么使用 ISAPI DLL(如果是,我很抱歉),或者您正在使用 FastCGI,尽管它有三个共同的字母, 实际上不是 CGI。自从...

    没有使用 IIS5,是吗?

    好的,如果您不在 IIS7 上,您可能没有在 FastCGI 模式下运行。 You should totally switch to FastCGI 与现代 PHP 版本。 Microsoft 花费了大量时间和精力让 PHP 和 FastCGI 与 IIS 完美配合。

    第三,有时在每个平台上的每个浏览器中设置 cookie 中间重定向一直存在问题。您确定实际上并未发送 cookie 标头吗?检查浏览器的开发工具。

    【讨论】:

    • 我正在运行 FastCGI,这仍然是一个问题。如果您有其他说明,我很乐意看到它。在相关的 PHP 文件前加上 nph-(例如 nph-test.php)为我解决了这个问题。我可以在 IIS 6 和 7 上重新创建问题,在 FastCGI 下运行 PHP。
    • @cinqoTimo,这意味着知识库文章有误,您应该考虑联系MS。
    【解决方案2】:

    为 PHP 文件添加前缀 nph-,而不是 -nph - 为我解决了这个问题。

    e.g. nph-test.php
    

    【讨论】:

      猜你喜欢
      • 2011-01-13
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 2019-10-08
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多