我有一个问题,我正在尝试使用nginx从网址中删除一些遗留信息但是它是一个日期,但它始终遵循相同的格式:
http://example.com/blog/xxxx/xx/xx/this-is-a-blog-post/
要..
http://example.com/blog/this-is-a-blog-post/
我想知道这是否可行?我自己一直试着写它,但我只是挑选出中间部分。这可以通过重写规则来实现吗?
感谢阅读!
答案 0 :(得分:3)
经过一些游戏和测试后,我设法使用以下语句实现了这一目标:
rewrite "/blog/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)" /blog/$4 permanent;
第一部分与以下表达式匹配:
/blog/2013/01/01/
最后一个斜杠之后的任何内容都将用于构建新的URL,这与$ 4一起使用,因为$可用于引用each()前三个是年,月,日,最后一个匹配标题博客文章就是我用4美元的原因。
希望这有助于人们,感谢穆罕默德在评论中让我找到了正确的路线。
答案 1 :(得分:1)
你可以试试这个
rewrite /blog/[0-9]{4}(?:/[0-9]{2}){2}(?<new_uri>.*) /blog$new_uri last;