我在使用nginx进行重定向时遇到了一个奇怪的问题。
我正在将.htaccess规则从我们现有的服务器apache转移到nginx,虽然我能够传输几乎所有规则,但一条规则对我不起作用:
htaccess的:
RewriteRule (.*)-(.*)-viewReview.html$ viewReview.php?brand=$1&model=$2 [QSA,L]
Nginx的规则
rewrite ^/(.*)-(.*)-viewReview.html$ /viewReview.php?brand=$1&model=$2 last;
此规则不适用于此输入:
http://testsite.com/Asus-Fonepad+7+8GB+3G-viewReview.html
这似乎是URL中存在的“+”的问题。由于此URL正常工作并正确重定向以下示例:
http://testsite.com/Asus-E600-viewReview.html
有关如何处理URL中“+”的任何指示。
案例与此处提到的问题完全相似:https://www.ruby-forum.com/topic/2493497,我可以在代码中处理案例,但这需要更改大量文件,基本上我们将解码它两次,可以这里的任何人都详细说明了我们如何才能做到这一点?
谢谢, Nitesh