![有更简洁的方式来编写这些 nginx 位置规则吗?](https://linux22.com/image/562406/%E6%9C%89%E6%9B%B4%E7%AE%80%E6%B4%81%E7%9A%84%E6%96%B9%E5%BC%8F%E6%9D%A5%E7%BC%96%E5%86%99%E8%BF%99%E4%BA%9B%20nginx%20%E4%BD%8D%E7%BD%AE%E8%A7%84%E5%88%99%E5%90%97%EF%BC%9F.png)
我曾尝试将以下 Nginx 位置规则重写为单个位置块,但由于 (.*)$,它似乎在逃避我。
location ~ /admin {
rewrite ^/admin(.*)$ /target.php last;
}
location ~ /index/ {
rewrite ^/index/(.*)$ /target.php last;
}
location ~ /services/ {
rewrite ^/services/(.*)$ /target.php last;
}
location ~ /test/ {
rewrite ^/test/(.*)$ /target.php last;
}
我以前可以使用正则表达式,但无法让下面的方法适合上面的情况
location ~ /(someplace|other|another)
答案1
如果始终是 target.php (并且 $1 在哪里?):
location ~ /(test|services|index)/ {
rewrite ^/*/(.*)$ /target.php last;
}