Apache 重写URL导致400错误请求
我正在尝试使用Apache绕过HTTP 400错误请求,该请求是在访问此URL时引起的(实际的域编辑):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
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。