Custom 404 показывает «Файл не найден» для файлов php вместо перенаправления - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь создать пользовательскую страницу ошибки 404.

То, что у меня есть, отлично работает со всеми несуществующими документами, папками, изображениями, htmls и т. Д. - открывает мою пользовательскую страницу 404 (с выводом Пользовательская 404! )

Однако, когда я пытаюсь получить доступ к файлу с расширением .php, который не существует, я получаю это:

404 response

... будучи " Файл не найден. " на экране, а не перенаправлен на мой документ 404.

Мой .htaccess

RewriteEngine On
ErrorDocument 404 /404.php

My 404.php

<?php

header("HTTP/1.0 404 Not Found");
include '404.html';
die();

?>

Мой 404.html

<!DOCTYPE html>
<html>
<head>
<title>Custom 404 | Not found!</title>
</head>
<body>

Custom 404!

</body>
</html>

EDIT

Чтобы быть более ясным о том, что здесь происходит.

Я считаю, что пути и .htaccess работают нормально, но с php должен быть какой-то трюк. Вот несколько примеров:

Когда я пытаюсь открыть некоторые файлы, которые не существуют на моем сервере:

  • myurl.com / folderthatdoesntexist / -> правильно открывает 404 / echoes Custom 404! ​​
  • myurl.com / imagethatdoesntexist.jpg -> открывает правильные 404 / эхо Custom 404!
  • myurl.com / htmlthatdoesntexist.html -> правильно открывает 404 / echoes Custom 404!
  • myurl.com / phpthatdoesntexist.php -> НЕ открывает правильно 404 -> говорит файл не найден

1 Ответ

0 голосов
/ 09 июля 2018

Я подозреваю, что разница в том, что php-файлы запускают интерпретатор, а html-файлы только обслуживаются. Решение, которое работает, но может быть не единственным или лучшим, - добавить эту директиву в файл конфигурации хоста:

ProxyErrorOverride on
...