Laravel на Nginx по умолчанию / URI не работает — требуется «index.php » — Проблема с конфигурацией Nginx?

#php #laravel #ubuntu #nginx #webserver

#php #laravel #ubuntu #nginx #веб-сервер

Вопрос:

Я добавил блок location для обслуживания приложения Laravel из дополнительного URI (только) в / todos/

 location /todos {
    try_files $uri $uri/ /todos/$query_string;
    index  index.php index.html index.htm;
    root /index.php;
    location ~ .php$ {
        fastcgi_index index.php;
        fastcgi_read_timeout 300;
        fastcgi_pass   unix:/opt/bitnami/php/var/run/www.sock;
        fastcgi_split_path_info ^(. .php)(/. )$;
        fastcgi_param SCRIPT_FILENAME /opt/bitnami/nginx/html/todos/public/index.php;
        fastcgi_param QUERY_STRING $query_string;
        include        fastcgi_params;
    }
}
  

Но переход к / todos / URI не работает (запрещено обслуживать 403), это требует, чтобы я действительно вставил «index.php » — значит, Laravel работает только с /todos/index.php.

Что я делаю не так?

ОБНОВЛЕНИЕ: Рабочая конфигурация:

 location /todos {
    try_files $uri $uri/ /todos/index.php?$query_string;
    index  index.php index.html index.htm;
    root /opt/bitnami/nginx/html/todos/public/;
    location ~ .php$ {
        fastcgi_index index.php;
        fastcgi_read_timeout 300;
        fastcgi_pass   unix:/opt/bitnami/php/var/run/www.sock;
        fastcgi_split_path_info ^(. .php)(/. )$;
        fastcgi_param SCRIPT_FILENAME /opt/bitnami/nginx/html/todos/public/index.php;
        fastcgi_param QUERY_STRING $query_string;
        include        fastcgi_params;
    }
}
  

Ответ №1:

Ваш root должен быть:

 root $directory_of_your_index.php_file;
  

И в местоположение добавить:

 try_files $uri $uri/ /index.php?$query_string;
  

Комментарии:

1. Спасибо! Обновил вопрос рабочей конфигурацией.