所以我有两条网址重写规则。
location ~ /details {
rewrite ^/details/(.*)/(.*)/(.*)/(.*)_(.*).html$ /site/$4.$5.html permanent;
rewrite ^/details/(.*)/(.*)/(.*)/(.*)_(.*)_(.*).html$ /site/$4.$5.$6.html permanent;
}
但出于某种原因,第一个单独使用就可以了,但第二个不会起作用。
我有没有办法将这2条规则合并为1?
感谢您的任何建议。
答案 0 :(得分:0)
尝试切换订单:
location ~ /details {
rewrite ^/details/(.*)/(.*)/(.*)/(.*)_(.*)_(.*).html$ /site/$4.$5.$6.html permanent;
rewrite ^/details/(.*)/(.*)/(.*)/(.*)_(.*).html$ /site/$4.$5.html permanent;
}
因为(.*)
匹配所有内容,所以它会吞噬包括_
个字符在内的所有内容,因此您的第一个正则表达式与第二个正则表达式匹配,因此永远不会达到第二个规则。