我正在尝试将我的所有移动用户重定向到网站的放大器版本,除了没有放大器版本的主页。每个其他放大器页面都有'/ amp'前缀为页面uri路径。 下面是我的nginx配置
if ($mobile_rewrite = perform) {
rewrite ^(?!.*(/|/amp)) http://www.example.com/amp$request_uri? permanent;
break;
}
我的目的是将任何路线重定向到放大器版本,主页除外。 重定向规则应为:
www.example.com ---> www.example.com
www.example.com/hollywood ---> www.example.com/amp/hollywood
www.example.com/article/abc ---> www.example.com/amp/article/abc
答案 0 :(得分:1)
您可以使用
^(?!/?$|(?:.*/)?amp(?:/|$))
请参阅here what kind of input it matches。
<强>详情:
^
- 字符串开头(?!(?:/?$|(?:.*/)?amp(?:/|$)))
- 如果前瞻模式匹配,则匹配失败的否定前瞻:
/?$|(?:.*/)?amp(?:/|$)
- 两种选择中的任何一种:
/?$
- 可选(1或0次出现)/
,然后结束字符串$
|
- 或(?:.*/)?amp(?:/|$)
- 任意0+字符的可选序列,直到最后/
(参见(?:.*/)?
),然后是amp
,后跟/
}或字符串结束。要添加条件以避免匹配js
或css
文件,请添加备选方案:
^(?!/?$|(?:.*/)?amp(?:/|$)|.*\.(?:js|css))
^^^^^^^^^^^^^^