【问题标题】:URLs with query stripped of ampersands appearing in error logs错误日志中出现查询的 URL 去掉了 & 符号
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 没有页面。重定向页面发出 Location 标头并退出。
【解决方案2】:

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

可能要评论:http://htmlhelp.com/tools/validator/problems.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多