【发布时间】:2010-06-07 14:19:57
【问题描述】:
我注意到最近我的错误日志中出现了一个奇怪的现象。如果由于处理表单,我将用户重定向到 URL http://www.example.com/index.php?foo=bar&bar=baz,我将在我的日志中看到以下两个 URL
http://www.example.com/index.php?foo=barbar=baz
http://www.example.com/index.php?foo=bar&bar=baz
第一个显然不正确,会导致我的应用程序重定向到 404。它总是首先出现,通常在第二个之前一秒钟。 404 页面没有进行重定向,因此浏览器似乎正在尝试这两个版本。起初,查看我的服务器日志让我相信它只影响了 Firefox 3.6.3,但我发现了一个 Safari 也受到影响的例子。尽管它可以在用户会话中多次发生,但它会相当间歇地发生。我从来没能让它发生在我身上。
对问题的性质或解决方案有任何想法吗?
编辑:由于它出现在一些答案中,我想我会讨论重定向的性质。它是在 PHP 中使用 header() 设置 Location 标头完成的。我从未见过专门要求对标头进行 URL 或 HTML 编码的规范,因此不会以任何方式对 URL 进行编码或转义。
【问题讨论】:
-
你能检查一下浏览器是否确实请求了这两个,可能在 Firefox 中使用 LiveHTTPHeaders 吗?
标签: php firefox url redirect safari