我有一种情况,我需要分别编写带有和不带有选择器的网址。
例如
到目前为止我所拥有的:
RewriteRule ^/feeds/([^.]*).(.*).json /content/feeds/$1/app.$2.json [PT,L]
RewriteRule ^/feeds/(.*).json /content/feeds/$1/app.json [PT,L]
问题是即使没有选择器,第一条规则也会重写。所以情况 1 从 /feeds/mydata.json 到 /feeds/mydata/app..json
有没有办法可以声明一个条件来检查选择器是否存在。 请注意,可以有多个选择器,如情况 3 所示。
模式
^/feeds/([^.]*).(.*).json
肯定会匹配对 /feeds/mydata.json
的请求。那是因为你的正则表达式很模糊,有点:
请记住,正则表达式中的文字点(“.”)将匹配any单个字符。知道你会明白
([^.]*).(.*).json
确实会匹配 mydata.json
。
试试这个:
^/?feeds/([^.]*)\.(.+)\.json$