如果参数不是 Nginx 的数字,如何重写?
How to rewrite if argument is not numeric with Nginx?
我有一个带有查询的脚本,其 id 参数必须是数字。
如果参数不仅仅是数字,它应该使用数字部分并重定向。
例如,如果我有这个 url:
例子.com/test.php?id=45sdfdsfsdfsdf
它应该重定向到:
例如.com/test.php?id=45
当然,我在 php 代码中使用了一个整数,但我希望更正 url。
if ($arg_id = ([\d]+).+) {
return 301 $uri?id=;
}
我尝试重写为 with 而不是 return 301 :
rewrite ^/(.*)$ /$uri?id=;
根据 Richard 的回复,答案:
if ($arg_id ~ ([\d]+)[^\d]) {
return 301 $uri?id=;
}
我有一个带有查询的脚本,其 id 参数必须是数字。 如果参数不仅仅是数字,它应该使用数字部分并重定向。
例如,如果我有这个 url: 例子.com/test.php?id=45sdfdsfsdfsdf 它应该重定向到: 例如.com/test.php?id=45
当然,我在 php 代码中使用了一个整数,但我希望更正 url。
if ($arg_id = ([\d]+).+) {
return 301 $uri?id=;
}
我尝试重写为 with 而不是 return 301 :
rewrite ^/(.*)$ /$uri?id=;
根据 Richard 的回复,答案:
if ($arg_id ~ ([\d]+)[^\d]) {
return 301 $uri?id=;
}