我试图在Nginx位置区域进行群组捕获,但这对我不起作用。
我想做的甚至可能吗?
location ~* /(?<cat>cars|trucks|bikes|motorcycle|quads) {
rewrite ^/$cat/([0-9]+)(.*)$ /page.php?id=$1 last;
}
我收到的错误消息是:
&#34; ^ / $猫/([0-9] +)$&#34(*);不匹配&#34; / cars / 120 / new-car-rental /&#34;
我的分类比我发布的要多得多,并试图阻止为每个特定的类别名称写一个5x的重写。
任何帮助都将不胜感激。
答案 0 :(得分:0)
我不熟悉这种特殊的语法,但根据我与他人的经验,您是否可能只需要逃避使用的正斜杠?
location ~* \/(?<cat>cars|trucks|bikes|motorcycle|quads) {
rewrite ^\/$cat\/([0-9]+)(.*)$ /page.php?id=$1 last;
}
答案 1 :(得分:0)
我通过这样做解决了这个问题:
location ~* /(cars|trucks|bikes|motorcycle|quad-bikes) {
rewrite ^/([a-zA-Z-]+)/([0-9]+)(.*)$ /page.php?id=$2 last;
...
...
}
正则表达式([a-zA-Z - ] +)允许我在我的类别/页面名称中使用字符a-z(不区分大小写)和可能的破折号。