nginx rewrite伪静态重写URL尾部自动增加/斜杠

 很多时候我们使用nginx做伪静态的时候需要使用目录形式的URL。这也会出现一些问题,比如带/斜杠的可以打开 不带斜杠的就404了。

有时候问了能兼容所有URL,伪静态就要搞好多。 最近搞个网站,伪静态规则数量已经将近200条。很多用了目录形式的URL

这里记录一下一个在URL尾部自动增加斜杠,URL尾部没有斜杠的自动跳转到带斜杠的URL网址。并且不影响其他文件。

往上很多教程是直接 rewrite 跳转,这样如果你有其他文件的话也一样会跳转。我做了些改进,增加了判断。可以完美兼容。

规则如下:

 

if (!-f $request_filename){
rewrite ^(.*[^/])$ $1/ permanent;
}
​

注意将上面三行代码放到你伪静态规则的 尾部,这样不影响已经存在的规则。自己的规则匹配不到的情况下最后才会跳转。

 

发表评论

您的电子邮箱地址不会被公开。