Nginx error_page не обслуживает файлы php

Я пытаюсь настроить файл 404, который обрабатывает запросы с неизвестным URL-адресом с помощью директивы error_page , файл, в который я пытаюсь выполнить рутинг, является файлом .php, который находится в тот же каталог, что и маршрут.

Проблема, которую я не могу понять, заключается в том, что как только я создаю маршрут 404 и определяю местоположение, он, похоже, загружает файл, а не обслуживает его. Чтобы проверить, я не был Я схожу с ума, я помещаю дополнительные файлы php вне правила 404, и они запускаются и возвращают контент, но файл правила 404 просто загружает

фрагмент моей конфигурации

root /var/www/itn;
index index.php index.html index.htm;

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
access_log        off;
log_not_found     off;
expires           1d;
}

error_page 404 /404.php;
location = /404.php{
    root /var/www/itn;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
    root /var/www/error/html;
}

location ~ \.php$ {
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_intercept_errors on;
    include fastcgi_params;
}

решения для быстрого поиска предложили fastcgi_intercept_errors , но включение и выключение не меняет помощи, также заметил, что если я ввожу поддельный URL-адрес www.site.com/somecraphere, он переходит на сайт, недоступен ERR_INVALID_RESPONSE, поэтому я думаю, что правило 404 работает, он просто ничего не может сделать с файл.

Все предложения, улучшения и исправления приветствуются.

0
задан 20 July 2017 в 12:00
1 ответ

Оказывается, я не умный человек

без файлов с пробами внутри локации ~ \ .php $

        try_files $uri /404.php;

он не будет выполнять php, вместо этого он будет пытаться обслуживать его так же, как изображение или документ.

0
ответ дан 5 December 2019 в 07:44

Теги

Похожие вопросы