2015-11-13 52 views
0

我试图将服务器从Apache迁移到NGINX。它位于S3存储桶的前面,用于提供访问控制和一些URL重写。我能够通过切换一切,除了这一个奇怪的重写规则:NGINX相当于Apache mod_rewrite的noescape

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

我们有一个文件,该文件需要有“++”的URL。当你从S3请求时,+需要被URL转义。 noescape标志可以让你在Apache中做到这一点。我试图做到这一点在NGINX为:

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

但百分号得到双重逃脱,“++”和“%252B%252B”被替换。有没有办法与NGINX做到这一点?

回答

0

尝试逃避%与另一个%:

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

没有运气。这会翻译成“%25%25b%25%25b” – Nate