【问题标题】:Why does this URL cause a bad request on my server?为什么这个 URL 会在我的服务器上导致错误的请求?
【发布时间】:2013-03-16 08:52:51
【问题描述】:

我有一个以% 结尾的网址。喜欢:/view/this-is-100%25。网址末尾不能有%吗?如果不允许,我该如何以另一种方式进行,如果允许,为什么会导致错误的请求?

谢谢。

更新:确切错误:

Bad Request
Your browser sent a request that this server could not understand.

【问题讨论】:

  • 这可能会有所帮助:Apache: %25 in url (400 Bad Request)
  • 什么服务器在为您的页面提供服务?
  • @SamRad 因为仅在 1 个 URL 中出现这种情况,我使用 str_replace 将其放置为“百分比”并在服务器上将其更改回“%”来解决它。丑陋的解决方案,但在我的情况下就足够了!

标签: url character-encoding urlencode bad-request


【解决方案1】:

"%" 在 URL 中用作 ASCII (?) UTF-8(?) 代码的前缀。例如,“空格”(ASCII 32 或十六进制 0x20)可以替换为“%20”。 “%”前缀后跟两个十六进制数字。 Web 服务器应采用“%20”并将其转换为空格。

如果 URL 末尾有“%”,则“%”后面没有两个十六进制数字,因此无法进行替换,并且 URL 实际上格式不正确。它实际上是一个错误的 URL。

这就是服务器不喜欢它的原因。

【讨论】:

  • 他有%25,而不是%..你假设他确实有%,而他的意思是他已经正确地将%编码为%25,但它仍然没有工作...
【解决方案2】:

我刚刚通过将% 替换为percent 解决了这个问题,因为这只是我的一个URL 中的情况。要获得更好的解决方案,请参阅此链接 Sam Rad 在我的帖子中提供了我的第一条评论: Apache: %25 in url (400 Bad Request)

【讨论】:

    猜你喜欢
    • 2017-12-09
    • 2023-04-09
    • 2023-04-08
    • 2011-03-11
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多