Моя пользовательская страница с ошибкой 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