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

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

我想检查 nginx 中的 url 中是否存在参数,然后重写。

我怎样才能做到这一点?

例如如果 url 是http://website.com/search/node/item123/loc=33然后重定向到http://website.com/search/node/item123

我的代码在这里但不起作用!

如果 ($arg_loc != "") { 重写 ^(/search/.*)$ $1? 永久; }

更新 : 我想重定向任何以以下结尾的 URLloc=数字到父级网址!阿拉伯语和英语字符

例如:

http://website.com/search/node/item123/loc=33

我想重定向到

http://website.com/search/node/item123/

或者

http://website.com/search/node/عربیک/loc=55

应该 :

http://website.com/search/node/عربیک

答案1

您的示例中没有查询参数。它只是一个 URL,因此您可以使用rewrite

类似这样的:

rewrite "^(/search/node/[^/]+)/loc=\d+$" $1 permanent;

PS 我强烈建议使用关键字redirect而不是,permanent直到您 1000% 确定重定向可以正常工作。

相关内容