有更简洁的方式来编写这些 nginx 位置规则吗?

有更简洁的方式来编写这些 nginx 位置规则吗?

我曾尝试将以下 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;
}

相关内容