【问题标题】:Escaping spaces in mod_rewrite在 mod_rewrite 中转义空格
【发布时间】:2010-09-19 20:25:23
【问题描述】:

我有以下 Apache mod_rewrite 规则:

RewriteRule ^(.*) http://127.0.0.1:4321/$1 [proxy]

这很好用; Apache 将所有请求转发到我在同一台机器上运行的 CherryPy 服务器。

很遗憾,我在使用带有空格的路径时遇到了一些问题。如果我向 /Sites/some%20site/image.png 发出请求,则 Apache 向 CherryPy 发出 /Sites/some site/image.png 的请求,这会弄乱 CherryPy。

有没有办法在我的 RewriteRule 中指定我想在将请求转发到 CherryPy 之前重新转义 URL 中的空格?

编辑:我找到了对 something that might help 的引用,但我继续通过用下划线替换空格并让 CherryPy 在提供文件之前进行转换来避免问题。

如果有人有的话,我仍然想知道一个更好的解决方案;不幸的是,我在最后期限内,目前没有时间自己解决这个问题。稍后我可能会返回此内容,并在找到时间时发布进一步的更新。

【问题讨论】:

  • 您确定这是您的确切规则吗?如果您使用 [NE] 标志,这就是行为。您可能偶然发现了一个错误,您的 apache 版本和平台是什么?
  • 这是确切的规则;我从我的 .htaccess 文件中复制/粘贴了它。我在 Windows Server 2003 上使用 Apache 2.2.9。
  • 尝试在rewriteloglevel 9中启用rewritelog,看看有没有线索,因为这很奇怪

标签: apache mod-rewrite cherrypy


【解决方案1】:

请参阅http://tools.cherrypy.org/wiki/ModRewrite#Bewaretheencodingbug 了解最知名的解决方案。

【讨论】:

    猜你喜欢
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多