【问题标题】:404 with spaces in the urls404,网址中有空格
【发布时间】:2012-08-09 18:42:43
【问题描述】:

我发现 Yahoo 搜索无法正确处理 URL 中的空格。

当用户点击进入包含空格的我的网站页面时,雅虎将它们替换为“+”符号。

我的服务器没有正确处理 '+' 而不是 ' ',并产生 404 错误。

那么如何使用 .htaccess 将 '+' 替换为 ' '?

【问题讨论】:

  • 为什么网页的网址中有空格?我的印象是,这是一种不好的形式,原因有很多,包括你提到的那个......
  • 当然,这很糟糕。但我无法改变它们。有什么建议吗?
  • 您的服务器如何对空间进行编码?通常我相信它们被编码为%20,但如果你的服务器不一样,这可能是雅虎替换空格的原因(它不识别它们)。
  • @Matt 是的,它们被编码为 %20,Google 可以完美地处理它们。也许雅虎做了一些转换。我需要将 '+' 替换为 ' '。
  • 雅虎搜索的网址是什么?

标签: .htaccess apache2 http-status-code-404


【解决方案1】:

+ 符号可用于对空格进行 URL 编码。多年来,它一直是标准的一部分,Apache 2 绝对知道如何将+ 解码为空格。可能发生的情况是+ 被编码为%2B,您可以使用以下方法将它们更改为空格:

RewriteEngine On
RewriteRule ^(.*)\+(.*)$ /$1\ $2 [L]

【讨论】:

  • 你能举个例子说明你如何将它融入到这样的事情中:RewriteRule ^client/([a-z0-9]+)$ index.php?client=$1 [L]
猜你喜欢
  • 2023-04-02
  • 2014-01-01
  • 1970-01-01
  • 2012-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多