Назад | Перейти на главную страницу

Псевдоним и регулярное выражение Nginx

мне понадобится небольшая помощь для псевдонима в папке с nginx

У меня есть папка www / с контейнером моего сайта example.com и много папок, таких как client0, client1, client2 ... Я НЕ должен изменять www / example /, но мне нужно, чтобы этот example.com/serveur0/ был перенаправлен на www / client0 /

Я сделал такое правило nginx:

location /serveur0/ {
    alias /www/client0/;
    index index.php
    location ~ /serveur0/(.*\.php)$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$1;
        include /etc/nginx/fastcgi_params;
    }
}

и он отлично работает. Но у меня возникают некоторые проблемы, когда я пытаюсь обобщить его, используя регулярное выражение. Я пробовал это

location /serveur([0-9]+)$/ {
    alias /www/client$1/;
    index index.php
    location ~ /serveur$1/(.*\.php)$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$1;
        include /etc/nginx/fastcgi_params;
    }
}

И это не работает, и я не понимаю, почему. Не могли бы вы помочь мне?

Во-первых location блок:

  1. Вы забыли указать префикс ~ (или ~*) использовать регулярные выражения.

  2. Удалите знак доллара ($) перед завершающей косой чертой.

location ~ /serveur([0-9]+)/ {
    alias /www/client$1/;
    index index.php
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        include fastcgi.conf;
        fastcgi_intercept_errors on;
        error_page 404 /error/404.php;
    }
}