Как заставить nginx отдавать по domain.com/sub отдельную папку?
Имеем проект на Laravel.
И понадобилось часть запросов на /sub обрабатывать отдельным скриптом. Но вот незадача, отдельный скрипт тоже написан на Laravel и по сути является независимым проектом.
Никак не могу заставить свой мозг сообразить как же изменить конфиг 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; }
Все равно.
Чую что решение простое и должно быть на поверхности. Ну вот в голове как заноза засела. Когда слово знаешь, а вспомнить не можешь.
И понадобилось часть запросов на /sub обрабатывать отдельным скриптом. Но вот незадача, отдельный скрипт тоже написан на Laravel и по сути является независимым проектом.
Никак не могу заставить свой мозг сообразить как же изменить конфиг 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; }
Все равно.
Чую что решение простое и должно быть на поверхности. Ну вот в голове как заноза засела. Когда слово знаешь, а вспомнить не можешь.
Похожие публикации
появилось несколько странных файлов на хостинге поясните?
Пароль на папку/файл на вирт. хостинге
Вредоносный .htaccess как избавиться от заразы ?
Как защитить сервер от нагрузки?
Будет ли нагрузка на хостинг
Нет комментариев