Nginx restful url 重写

Nginx restful url 重写

我需要像这样重写 URL:

example.com/demo/test/123/edit

到:

example.com/demo/test.php?a=123&b=edit

它与以下重写规则一起工作:

location /demo {
    rewrite ^/demo/(.*)/(.*)/(.*) /demo/$1.php?a=$2&b=$3 last;
}

但是 URL 可以是 /demo/test 和 /demo/test/123,所以重写规则不起作用。我试过:

rewrite ^/demo/(.*)(?:/*)(.*)(?:/*)(.*) /demo/$1.php?a=$2&b=$3 last;

但没有运气。

相关内容