Директива try_files в моем файле конфигурации Nginx работает только в определенных ситуациях. Вот с чем я работаю:
location / {
try_files $uri $uri/ /route.php?_route_url=$uri;
}
Если я перейду к /admin/popups/image.php, он правильно загрузится, потому что это существующий файл (я полагаю, что это первый аргумент в операторе try_files). Если я перехожу к /admin/webpages/, он правильно загружается - это будет третий аргумент - /admin/webpages/ не существует, а route.php извлекает файл в /modules/webpages/admin/index.php. Когда я захожу в /admin/webpages/edit.php, я получаю 404. Мне кажется, что он должен попасть в третий аргумент в try_files и работать. Если я перехожу к /route.php?_route_url=/admin/webpages/edit.php, все работает нормально.
Я немного ломаю голову над этим, и я не могу понять это. Я уверен, что это что-то простое, но я не вижу этого. Спасибо.
ОБНОВЛЕНИЕ: при дальнейшем расследовании кажется, что этот блок не отражает изменения, которые должны произойти в файлах try_files выше:
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
Не уверен, что это поможет. Я предполагаю, что мне нужно, чтобы исходный блок вступил в силу до этого. Спасибо