Если честно, то я понятия не имею что это такое... Сервер у меня старинный, ему 7 лет уже, за это время на нём побывали десятки сайтов, а админ из меня ещё хуже чем програмер... На сервере есть сайты только под PHP 4 и 5... Раньше мне один знакомый помогал с сервером.
Ну всё равно, всем спасибо! Главное сайт работает как и задумывалось!
master32 большое спасибо! Выставил
fastcgi_intercept_errors off;
Теперь всё работает как я и планировал! Когда надо инклайдиться именно 404.php без редиректа на 404.html!
Спасибо!
36- proxy_connect_timeout 600;37- proxy_send_timeout 600;38- proxy_read_timeout 600;39- send_timeout 600;40: fastcgi_intercept_errors on;41-42-43- #gzip on;44-453- rewrite ^/dzen/(.*)$ /save/dzen.php?id=$1 last;454- rewrite ^/sitemap/sitemap.xml$ /sitemap/sitemap.php last;455- rewrite ^/sitemap/([0-9]+)/video.xml$ /sitemap/video.php?page=$1 last;456-457: error_page 404 /404.html;458- location = /404.html {459- root /var/www/site.ru/data/www/hd2k.ru;460- internal;461- }
Заменил в файле 404.php как советовал уважаемый master32 стоку
header($_SERVER['SERVER_PROTOCOL']." 404 Not Found");наhttp_response_code(404);
Всё равно редиректит на 404.html...
Вот даже если открывать напрямую 404.php запускается именно 404.html хотя в адресной строке стоит 404.php!
https://hd2k.ru/404.php
Да я знаю, просто забыл тогда поставить команду...
Непонятное происходит с моей страницей 404. В локалке под Апачем проходит
include($_SERVER['DOCUMENT_ROOT']."/404.php");
Ну вообщем сайт работает на PHP 8 почему то через некоторое время начинает подвисать, приходится перезапускать PHP 8... Перевёл сайт даже на PHP 7, вроде работает. У меня как то была проблема на одном сайте, забыл поставить команду exit; после редиректа через хедер и вот тут похожая проблема.
Хотя конечно возможно проблема и не в 404...
Вот я и спрашиваю, как правильно выдать 404 ошибку?
location @php { include /etc/nginx/vhosts-resources/hd2k.ru/dynamic/*.conf; fastcgi_index index.php; fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@hd2k.ru"; fastcgi_pass unix:/var/www/php-fpm/16.sock; fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; }
В конфиге NginX прописал вот так:
error_page 404 /404.html; location = /404.html { root /var/www/site.ru/data/www/hd2k.ru; internal; }