如果特定字符串不存在,则nginx正则表达式重定向

时间:2018-02-08 23:02:06

标签: regex redirect nginx amp-html

现在我有一条线路将以/ amp /结尾的任何内容重定向到带有放大/删除的网址(因为我之前安装了一个AMP插件,然后将其删除,现在正在阻止404)。

现在我再次安装AMP,但希望它只对其中包含/ news /的网页有效:

https://www.examplesite.com/news/name-of-article/

所以如果它在URL中有/ news /,它应该允许/ amp /工作而不是重定向:

https://www.examplesite.com/news/name-of-article/amp/

如果它没有/ news /它不应该允许/ amp /并且应该从URL的尾端删除/ amp /。

现在我在我的配置文件中有这个随时删除/ amp /:

重写^(。* /)amp / $ $ 1 permanent;

如何正确重写以使其以新的方式工作并在网址中找到/ amp / if / news /?

1 个答案:

答案 0 :(得分:3)

您可以在正则表达式中使用否定前瞻断言来放弃以/news/字符串开头的匹配。

例如:

rewrite ^(?!/news/)(.*/)amp/$ $1 permanent;

有关详细信息,请参阅this documenmt