point212
@point212
сисадмин linux, программист php

Как заставить nginx отдавать по domain.com/sub отдельную папку?

Имеем проект на Laravel4. Страшное legacy. Тормозит местами.
Решилил переписать потихоньку на другом фреймворке.
Задача такая: Часть запросов на URL /sub обрабатывать отдельным движком.

Никак не могу заставить свой мозг сообразить как же изменить конфиг nginx'a чтобы всё работало. Помогите разобраться, пожалуйста.

Сейчас конфиг стандартный как у всех:
server {
# все как у всех
   listen 80 default_server;
   server_name domain.cm;
   root /home/domain.com/public;
   index index.php;

# тут все стандартно 
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

# и тут все стандартно 
   location ~ \.php$ {
       fastcgi_pass 127.0.0.1:9001;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params;
   }
}


Соответственно /home/domain.com лежит проект. А /home/domain.com/public точка входа в приложение.
Так вот в /home/domain.com/sub лежит подпроект. И его точка входа естественно /home/domain.com/sub/public
А надо отдать его как domain.com/sub. Причем чтобы юзера не редиректило в domain.com/sub/public

Пробовал реализовать то что мне нужно вот так:
location /sub {
         alias /home/domain.com/sub/public/;
         try_files $uri $uri/ /index.php?$query_string;
 }

Не работает.

Пробовал так:
location /sub {
       root /home/domain.com/sub/public/;
       rewrite ^(.*) /index.php$1;
  }


Все равно.

Чую что решение простое и должно быть на поверхности. Ну вот в голове как заноза засела. Когда слово знаешь, а вспомнить не можешь.
  • Вопрос задан
  • 743 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы