try_files на index.php не отрабатывает в NGINX+PHP-fpm для не существующих php файлов
Добавлено: Чт янв 14, 2021 12:04 pm
Установлен с нуля CentOS 7 с BrainyCP версии 1.0829.
При стандартных настройках NGINX + PHP-fpm 7.4 (другие версии также себя ведут).
Запрос, на файл с расширением php - возвращает 404-ю страницу nginx.
Хотя при этом, для не существующих файлов других расширений,
направление на index.php отрабатывает корректно и отображается страница 404 от CMS.
Примеры запросов:
Кто-то знает как корректнее настроить именно с админки, и сохранив совместимость к обновлениям?
Пока временным, рабочим, решением (которое слетит при обновлении, как понимаю)
скорректировал системный файл панели:
В файле /etc/brainy/conf/vhosts/vhosts.tpl
Оригинальная версия:
Скорректированная версия:
После корректировок, пересобрал через кнопку "Пересобрать виртуальные хосты".
В такой версии, все не существующие файлы, проксируются через index.php
При стандартных настройках NGINX + PHP-fpm 7.4 (другие версии также себя ведут).
Запрос, на файл с расширением php - возвращает 404-ю страницу nginx.
Хотя при этом, для не существующих файлов других расширений,
направление на index.php отрабатывает корректно и отображается страница 404 от CMS.
Примеры запросов:
- http://domain.com/index.php - корректно
- http://domain.com/not-real-folder/not-real-file.html - корректно открывается через index.php страница CMS.
- http://domain.com/not-real-folder/not-real-file.php - ошибка 404 nginx.
Кто-то знает как корректнее настроить именно с админки, и сохранив совместимость к обновлениям?
Пока временным, рабочим, решением (которое слетит при обновлении, как понимаю)
скорректировал системный файл панели:
В файле /etc/brainy/conf/vhosts/vhosts.tpl
Оригинальная версия:
Код: Выделить всё
{if $bridge_nginx == 'fpm' and $back_server != 'apache2.2' and $back_server != 'apache2.4'}
location ~ \.php$ {
try_files $fastcgi_script_name =404;
root {$dir};
Код: Выделить всё
{if $bridge_nginx == 'fpm' and $back_server != 'apache2.2' and $back_server != 'apache2.4'}
location ~ \.php$ {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php last;
}
root {$dir};
В такой версии, все не существующие файлы, проксируются через index.php