如何使用 Nginx 检查 URL 参数并重定向

如何使用 Nginx 检查 URL 参数并重定向

我想检查 nginx 中 URL 中是否存在某个参数,然后重写。我该怎么做?

例如如果 url 是http://website.com/Cat-8/ID-1/Ads-4-3?page=1然后将用户重定向到http://website.com/Cat-8/ID-1/Ads-4-3

仅重定向页面猫-并结束于?页数=1

例如:

http://website.com/Cat-8/ID-1/Ads-4-3?page=1

重定向至

http://website.com/Cat-8/ID-1/Ads-4-3

另一个例子:

http://website.com/node/Item21?page=1

例如我不希望此页面重定向

http://website.com/node/Item21?page=1

使用我的代码,所有 url 都已重定向!

有 :

如果 ($arg_page != "") { 返回 301 $uri; }

答案1

你可以使用rewrite而不是return,因为它可以:

  • 仅定位以 开头的 URL Cat-,以及
  • 它可以轻松删除原始查询字符串

例如:

if ($arg_page != "") { rewrite ^(/Cat-.*)$ $1? permanent; }

重要的:区块if行为不同当放置在location块内时。因此,此代码片段设计为放置在server块内。

相关内容