如何删除大量尾部斜杠(Nginx)

如何删除大量尾部斜杠(Nginx)

我需要删除大量的尾部斜杠,现在我有

rewrite ^/(.*)/$ /$1 permanent;

所以www.example.com/就变成了www.example.com

很好,但是当我转到www.example.com///(任意数量的斜杠)时,它不会重定向。我需要让末尾的任意数量的斜杠重定向到没有斜杠的页面。

答案1

Nginx 会先删除连续出现的 ,然后再使用和指令/对其进行处理,从而规范化 URI 。因此,您的规则永远不会看到连续的。请参阅rewritelocation/这个文件了解详情。

原始请求可用,$request_uri并且可以使用if块进行检查。

例如:

if ($request_uri ~ ^(.*/)/($|\?.*)) { return 301 $1$2; }

这种警告关于 的使用if

相关内容