多个重写nginx

我目前有我的video页面的URL重写如此

rewrite ^/watch/(.*) /video.php?vid_id=$1 last; 

这使得URL看起来像

 www.site.com/watch/123456 

代替

 www.site.com/video.php?vid_id=123456 

我希望能够像这样在URL中添加标题,而不会影响上述URL的位置和当前行为

 www.site.com/watch/123456/vid-title 

然而,我也希望能够继续使用www.site.com/watch/123456或www.site.com/watch/123456/来看我的video,因此相当于我的原始url(具有灵活性URL)。 有谁知道如何与NGINX做到这一点? 我需要多次重写吗? 我尝试过多次重写的组合,但没有成功。 我已经看到它在很多网站上完成,但不知道他们是如何完成的。

尝试这个:

 rewrite ^/watch/([^/]+)/?(?:vid-title)?$ /video.php?vid_id=$1 last; 
  • ([^/]+)匹配任意数量的字符,但不是斜杠。 你可以使用([0-9]+)
  • 问题掩码? 使前面的正则expression式是可选的。
  • ?:告诉正则expression式引擎这个组不应该创build反向引用