Почему настраиваемая страница ошибки 404 PHP работает только в Интернете для URL, где задействованы несуществующие каталоги, независимо от того, существует файл или нет? - PullRequest
0 голосов
/ 14 сентября 2018

Моя пользовательская страница с ошибкой 404, кажется, работает в Интернете только для URL, которые содержат каталоги, которые не существуют.Если у меня есть только несуществующий файл (в существующем дереве каталогов), тогда вместо желаемой пользовательской страницы 404 я получаю пустую страницу с «Файл не найден».Похоже, независимо от того, есть ли у меня несуществующий файл или существующий файл в моем URL, я получаю свою пользовательскую страницу 404 только тогда, когда где-то в URL есть несуществующий / неправильно написанный директой.Оффлайн, на Xampp все работает нормально, хотя.Кто-нибудь может указать мне правильное направление относительно того, что я могу делать неправильно?

Вот так выглядит мой ".htaccess", который я помещаю в свой корневой каталог вместе со своей пользовательской страницей ошибок:

ErrorDocument 400 /error404.php
ErrorDocument 401 /error404.php
ErrorDocument 403 /error404.php
ErrorDocument 404 /error404.php
ErrorDocument 405 /error404.php
ErrorDocument 408 /error404.php
ErrorDocument 500 /error404.php
ErrorDocument 502 /error404.php
ErrorDocument 504 /error404.php

<IfModule mod_rewrite.c>
     RewriteEngine on
     RewriteCond %{HTTPS} !=on
     RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,QSA]
</IfModule>

Обновление: Кажется, что причиной моих проблем является расширение файла ".php".Если я вызываю файлы, которые не существуют с расширением «.php», я получаю «Файл не найден».Если я использую расширение ".html" в моем запросе, моя пользовательская страница ошибки 404 работает нормально.

пример с расширением html

пример с расширением php

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

Мне нужно дополнительно проверить это, но следующие строки в моем файле .htaccess могут помочь:

RewriteEngine on
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
    RewriteRule ^.+\.php$ /non_existant_file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...