Подтвердить что ты не робот

ErrorDocument 404/404.php не работает в файле .htaccess в PHP

У меня есть файл .htaccess в корневом каталоге, а также файл 404.php. Содержимое моего файла .htaccess:

ErrorDocument 404 /404.php 

Но когда я неправильно использую свой url, 404.php не открывается. Вместо этого я получаю следующее сообщение:

Не найдено

Запрошенный URL/mywebsite/ites.php не найден на этом сервере.

Кроме того, при попытке выполнить ошибку 404 Not Found используйте обработчик запроса ErrorDocument.

Но когда я попробовал ErrorDocument 404 google.com, он сработал.

4b9b3361

Ответ 1

Я обобщу свои комментарии к этому ответу:

При настройке...

ErrorDocument 404 /404.php

путь /404.php может быть не абсолютным путем к корню вашей htdocs, а корневой файловой системой. Это может быть основано на вашей конфигурации, например. /home/htdocs/ или ~ и т.д.

Итак, что нужно сделать, это найти абсолютный путь и установить его соответствующим образом.

Ответ 2

Где ваш 404.php действительно находится по отношению к вашему файлу .htaccess? Можете ли вы просто запустить его как прямой URL? Является ли файл доступным для чтения сервером? Или это во вложенном подкаталоге? Вы также можете попробовать полный URL-адрес:

ErrorDocument 404 http://mygreat.server/404.php 

Подробная информация в официальной документации Apache здесь.

Ответ 3

Вы используете ErrorDocument следующим образом:

ErrorDocument <3-digit-code> <action>

У вас есть три типа действий, которые запускаются тем, что вы вводите:

Акция будет рассматриваться как:

  1. Локальный URL для перенаправления, если действие начинается с "/".
  2. Внешний URL-адрес для перенаправления, если действие является допустимым URL-адресом.
  3. Текст для отображения (если ничего из вышеперечисленного). (Текст должен быть заключен в кавычки ("), если он состоит из более чем одного слова.)

Например.

Пользовательский текст: ErrorDocument 404 "Oops! We can't find that pesky file. Sorry."

Локальный путь: ErrorDocument 404/local/path/to/404.php

Внешний URL: ErrorDocument 404 http://external_url.example.com/server_error.html

Вы выбрали локальный файл, но, вероятно, неправильно связываетесь с точки зрения сервера. Пути к локальным серверам - это не то, что вы видите в своем URL, и часто включают такие вещи, как ~/htdocs/www/domainname/.

Скорее всего, проблема в том, что ваш путь к 404.php неверен и не может быть найден вашим сервером.

Ответ 4

Эй, вы можете изменить некоторые настройки в httpd.conf из: -

<Directory />
AllowOverride none
Require all denied
</Directory>

к: -

<Directory />
AllowOverride All
Require all denied
</Directory>

Вы можете использовать

ErrorDocument 404/404.php

В htaccess