Директива try_files в моем файле конфигурации Nginx работает только в определенных ситуациях. Вот то, что я работаю с:Nginx try_files не работает для URL-адресов, заканчивающихся на .php
location/{
try_files $uri $uri/ /route.php?_route_url=$uri;
}
Если я перейти к /admin/popups/image.php правильно загружает, потому что существующий файл - (я считаю, что это первая агд в заявлении try_files наезд). Если я перейду на/admin/webpages/он правильно загрузится - это будет третий arg -/admin/webpages/не существует, а route.php вытащит файл в /modules/webpages/admin/index.php. Когда я перехожу на /admin/webpages/edit.php, я получаю 404. Мне кажется, что он должен попасть в третий arg в try_files и работать. Если я перейду к /route.php?_route_url=/admin/webpages/edit.php, он отлично работает.
Я немного бил головой об этом, и я не могу понять это. Я уверен, что это что-то простое, но я не вижу этого. Благодарю.
UPDATE: После дальнейшего исследования, кажется, этот блок не отражает изменения, которые должны произойти в вышеуказанных 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;
}
Не уверен, если это поможет. Я предполагаю, что мне нужно, чтобы исходный блок вступил в силу до этого. Благодаря
Я сделал это несколько раз. Благодарю. – user2532598