我们希望nginx永久重定向url,并使用斜杠到非斜杠网址 . 我们发现:https://www.scalescale.com/tips/nginx/nginx-remove-trailing-slash/
所以我们把:
rewrite ^/(.*)/$ /$ permanent;
在nginx中,问题是它一定不适用于某些文件夹 . 所以我们发现:remove trailing slash in nginx with some certain cases ignored
我们将其改为:
rewrite ^/(?!admin)(.*)/$ /$ permanent;
但是服务器无法启动:
invalid number of arguments in "rewrite" directive in /opt/www/folder/.nginx:5
而且:我们想要排除2个文件夹 . 从重写规则中排除文件夹的正确正则表达式是什么?
谢谢,
巴特
编辑谷歌来这里的人:
答案是有效的...唯一奇怪的是标准在没有1美元的情况下工作:
rewrite ^/(.*)/$ /$ permanent;
现在我们进行了排除,如果没有$ 1,它就不再起作用....但是现在这个有效:
# remove trailing slashes
rewrite ^/(?!folder1|folder2)(.*)/$ /$1 permanent;
1 回答
我怀疑这只是一个错字 .
/$
看起来应该是/$1
:如果您有多个要排除的URI,请尝试类似的方法
nginx
使用与Perl相同的正则表达式库,因此您可以从命令行测试这些东西并只输入示例URI .