我目前有我的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反向引用