Apache 重写URL导致400错误请求

Apache 重写URL导致400错误请求,apache,mod-rewrite,Apache,Mod Rewrite,我正在尝试使用Apache绕过HTTP 400错误请求,该请求是在访问此URL时引起的(实际的域编辑): http://example.com/nw/f/RUD/E.enc URL以实际的空格字符结尾,因此发出HTTP 400错误请求。我无法让请求此操作的客户端删除URL中的空格,因此我需要在没有空格的情况下重写URL 我尝试过一些重写规则,比如(在启用重写引擎之后): RewriteRule“^/nw/f/RUD/E(.*)”/nw/f/RUD/E.enc[p] 重写规则无效,仍然提供HTTP

我正在尝试使用Apache绕过HTTP 400错误请求,该请求是在访问此URL时引起的(实际的域编辑):

http://example.com/nw/f/RUD/E.enc

URL以实际的空格字符结尾,因此发出HTTP 400错误请求。我无法让请求此操作的客户端删除URL中的空格,因此我需要在没有空格的情况下重写URL

我尝试过一些重写规则,比如(在启用重写引擎之后):

RewriteRule“^/nw/f/RUD/E(.*)”/nw/f/RUD/E.enc[p]

重写规则无效,仍然提供HTTP 400

甚至当我在规则中转义空格字符而不是使用通配符时,也会发生这种情况。如果我尝试替换HTTP 400错误页面以获得实际内容(这并不理想,因为有4个不同的文件)


我如何才能正确地重写URL,删除其中的空格,而不获取HTTP 400?

您的
重写规则
生成一个重定向循环,作为
../E.enc
../E.enc
两者都匹配
../E(.*)$
。 最好使用
[R]
edirect,尽管代理也可以工作

RewriteEngine On
RewriteRule "^/nw/f/RUD/E\.enc $" /nw/f/RUD/E.enc [R,L]
或更短

RewriteEngine On
RewriteRule "^(/nw/f/RUD/E\.enc) $" $1 [R,L]

这里的
[P]
标志真的正确吗,您是否在某处代理请求?使用
重写规则
(并将
代理超时时间设置为10秒),我得到一个502代理错误:)听起来比您告诉我们的要多-什么代理?您的
重写规则
中的代理。嗯,我尝试了这两个。他们更接近了,但我还是得到了HTTP 400。