@usr-php, для этого существуют переменные окружения и конфигурационные файлы. Нет ничего проще замастырить константу содержащую путь к странице ошибки в вайле конфигурации. А править конфиг при переносе - это святое дело. Но это лирика. А вообще я бы вам не советовал думать о переносе ЭТОГО куда либо. Учите MVC и роутеры для начала и станет понятно как отдавать 404-ю страницу.
Код (Text): header("HTTP/1.0 404 Not Found"); header("HTTP/1.1 404 Not Found"); Это не обычные заголовки, а такой способ установки статуса ответа. Выберите что-нибудь одно. Или положитесь в выборе версии на среду исполнения (см. http_response_code). Кстати, обычные однотипные заголовки по дефолту тоже совмещаются, т.е. если оставите только последний, ничего не потеряете.
В смысле правильно вот так: PHP: if (!in_array($art, $artArray)) { header("HTTP/1.1 404 Not Found"); header("Status: 404 Not Found"); readfile(dirname(__DIR__).'/errordocs/404.html'); die(); }
Как вариант. Status – это какая-то муть информационного характера. Тоже можно убрать. --- Добавлено --- Можете изучить ответ сервера, когда он исключительно сам выдает 404-ую, и сделать так же.
Скажите, пожалуйста, есть ли способ, который бы позволял как-то сообщить серверу, что по введенному адресу нет страницы, на что он сервер бы уже вернул errordocs/404.html?
Это нужно каскад из серверов городить или свой модуль писать. В этом нет необходимости, т.к. скрипт воссоздает это поведение несколькими строчками. --- Добавлено --- Если вас напрягает «двойственность» вывода 404-ой, я уже сказал, как нужно поступить: не перекладывать вывод на сервер, а наоборот все взять на себя (быть может, за редкими исключениями, не касающимися обычной практики).