如果参数不是 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=; 
}