Я пытаюсь настроить виртуальный хост nginx, чтобы иметь общую корневую папку со статическими файлами и пару виртуальных подпапок с проектом laravel внутри.
Структура моих папок:
/var/www/project/html <- where I store static files
/var/www/project/laravel1 <- where I put a laravel project
Итак, моя цель - создать такой домен:
http://example.com <- that serves static files
http://example.com/laravel1 <- that serves laravel project
Это моя конфигурация виртуального хоста nginx:
server {
root /var/www/project/html;
index index.html index.htm index.php;
server_name example.com;
location /laravel1 {
alias /var/www/project/laravel1/public;
try_files $uri $uri/ @laravel1;
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
location @laravel1 {
rewrite /laravel1/(.*)$ /var/www/project/laravel1/public/index.php?$1 last;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Таким образом, основная папка обслуживает статические файлы,Индекс проекта laravel1 доступен в http://example.com/laravel1,, но если я пытаюсь получить доступ к маршрутам laravel, например http://example.com/laravel1/page1, nginx возвращает страницу 404, и из отладки я могу сказать, что не обрабатывает URL-адрес в laravel index.phpфайл для обработки.
Кто-нибудь может помочь?Спасибо