Php 错误日志中显示的带有删除了符号的查询的URL

Php 错误日志中显示的带有删除了符号的查询的URL,php,firefox,url,redirect,safari,Php,Firefox,Url,Redirect,Safari,最近我注意到一个奇怪的现象出现在我的错误日志中。如果作为处理表单的结果,我将用户重定向到URLhttp://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。它总是出现在第一位,

最近我注意到一个奇怪的现象出现在我的错误日志中。如果作为处理表单的结果,我将用户重定向到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()
来设置
位置
头来完成的。我从未见过一个规范专门要求标题是URL或HTML编码的,因此URL不会以任何方式编码或转义。

我认为这不会是浏览器。查看页面中是否调用了任何图像,或者是否有一个字符串函数来去除符号。奇怪的是。

不确定如何进行重定向,但您可能需要对URL进行URL编码。浏览器可能会误解barr&是一个特殊字符


可能需要查看:

您是否可以检查浏览器是否确实同时请求了这两个请求,可能是使用Firefox中的LiveHTTPHeaders?没有页面。重定向页面发送位置标头并退出。