我在想如何为nginx编写正确的重写,因为它每次都会失败。NGINX动态URL的重写规则
我有一个页面,可以访问没有任何动作(http://foo.bar/praemienshop/)或在url中的参数,然后触发一个动作(http://foo.bar/praemienshop/1)。该参数应始终为数字。如果可能的话,如果没有给出参数,结束斜线应该是可选的。 这是我tryed:
location /praemienshop {
rewrite ^/praemienshop(|/)([0-9]+/.*?)?$ /index.php?url=praemienshop&item=$1;
}
荫能开foo.bar/praemienshop但每次我打开foo.bar/praemienshop/3(或任何其他数值),它只是抛出没有找到404。
我既不擅长编写正则表达式,也不完全了解在nginx中如何重写。我曾在IIS中工作,但将它导入nginx很难。
感谢您的任何帮助。
'$ 1'是第一个捕获'(| /)' - 你应该尝试'$ 2'。 –
感谢您的帮助理查德。但是这不能解决它。如果我添加一个数字,它仍会抛出一个404(例如:foo.bar/praemienshop/3) –