LINUX.ORG.RU

nginx rewrite

 , ,


0

1

Привет, ЛОР. Не могу разобрать со следующим тз. Иерархия директорий такая /var/www/site в папке site есть frontend и backend

если запрос идет на /admin - нужно что бы пользователь попадал в backend

если запрос идет просто / - соответственно веб сервер должен реврайтить на frontend

nginx version: nginx/1.6.2

server {
        listen 80;
        server_name .example.org;
        root /var/www/example.org;
        client_max_body_size 100m;

        access_log  /var/log/nginx/example-access.log;
        error_log  /var/log/nginx/example-error.log;

        charset utf-8;
        index index.php;

location ~* /uploads/.*.php$ {
        deny all;
        access_log off;
        log_not_found off;
        }

location  / {
        try_files $uri $uri/ /index.php;
        }
location ^~ /admin {
        rewrite ^/admin(.*)?$ /backend/web/$1 break;
}
location ~* \.php$ {
        fastcgi_index index.php;
        fastcgi_pass  unix:/var/run/php5-fpm.sock;
        include /etc/nginx/fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }

location ~ /\. { deny all; access_log off; }

location = /favicon.ico { log_not_found off; }
}

как видно в конфиге, с отедльным локейшном /admin разобрался - работает. А вот с фронтендом все никак не получаеться. Спасибо большое заранее, хорошего дня.

Пробовал такую конструкцию?

location  / {
        rewrite ^/admin(.*)?$ /backend/web/$1 last;
        rewrite ^/*$ /frontend/web/$1 last;
}
location ^~ /admin {
        try_files $uri $uri/ /index.php;
}
location ^~ /frontend {
        try_files $uri $uri/ /index.php;
}

expelled ★★ ()
Ответ на: комментарий от rom100
        location / {
                rewrite ^/admin(.*)?$ /backend/web/$1 last;
                rewrite ^(.*)$ /frontend/web/$1 last;
        }

        location ^~ /backend/ {
                fastcgi_index index.php;
                fastcgi_pass  unix:/var/run/php5-fpm.sock;
                include /etc/nginx/fastcgi_params;
                fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        location ^~ /frontend/ {
                fastcgi_index index.php;
                fastcgi_pass  unix:/var/run/php5-fpm.sock;
                include /etc/nginx/fastcgi_params;
                fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
expelled ★★ ()