it-swarm.com.ru

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, это сработало.

16
user1556433

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

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

ErrorDocument 404 /404.php

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

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

15
conceptdeluxe

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

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

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

12
JakeGould

Вы используете 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 неверен и не может быть найден вашим сервером.

1
Chuck Le Butt