NGINX相当于Apache mod_rewrite的noescape

时间:2015-11-13 17:40:03

标签: nginx

我试图将服务器从Apache迁移到NGINX。它位于S3存储桶前面,提供访问控制和一些URL重写。除了这个奇怪的重写规则之外,我能够切换所有内容:

RewriteRule ^([^+]*)\+\+(.*)$ http://s3.amazonaws.com/bucket$1\%2b\%2b$2 [P,NE]

我们有一个文件需要有" ++"在URL中。当您从S3请求时,+#需要进行网址转义。 noescape标志允许您在Apache中执行此操作。我尝试在NGINX中这样做:

rewrite ^([^+]*)\+\+(.*)$ $1%2b%2b$2 last;

但百分号符号被双重逃脱并且" ++"被替换为"%252b%252b"。有没有办法用NGINX做到这一点?

1 个答案:

答案 0 :(得分:0)

尝试使用另一个%:

转义%
rewrite ^([^+]*)\+\+(.*)$ $1%%2b%%2b$2 last;