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

Пользовательские ошибки 404 с Apache

Я пытаюсь создать пользовательскую ошибку 404 для моего сайта. Я тестирую это, используя XAMPP в Windows.

Моя структура каталогов выглядит следующим образом:

error\404page.html
index.php
.htaccess

Содержимое моего файла .htaccess:

ErrorDocument 404 error\404page.html

Это приводит к следующему результату:

alt text http://i38.tinypic.com/24qk0fk.jpg

Однако это не работает - это как-то связано с тем, как косые черты или как я должен ссылаться на документ с ошибкой?

документы сайта сайта находятся в папке с корнем веб-сайта, если это имеет какое-то значение для того, как я должен ссылаться?

Благодарим вас за продвинутый.

Когда я меняю файл на

ErrorDocument 404 /error/404page.html

Я получаю следующее сообщение об ошибке, которое не входит в файл html, который я связал, но он отличается от того, что указано выше:

alt text http://i32.tinypic.com/kci5b7.jpg

4b9b3361

Ответ 1

Директива ErrorDocument при предоставлении локального URL-пути ожидает, что путь будет полностью соответствовать DocumentRoot. В вашем случае это означает, что фактический путь к ErrorDocument равен

ErrorDocument 404 /JinPortfolio/error/404page.html

Когда вы исправили его во второй попытке, причина, по которой вы видите эту страницу, заключается в том, что http://localhost/error/404page.html не существует, поэтому бит о том, что существует ошибка 404 при поиске документа обработки ошибок.

Ответ 2

.htaccess файлы по умолчанию отключены в Apache в связи с проблемами производительности. Когда файлы .htaccess включены, веб-сервер должен проверять его на каждый удар в каждом подкаталоге, из которого он находится.

Просто подумал, что важно отметить. Если вы хотите в любом случае включить файлы .htaccess, здесь ссылка, которая объясняет это:

http://www.tildemark.com/enable-htaccess-on-apache/

Ответ 3

Вместо того, чтобы добавлять их в ваш .htaccess файл, вы можете добавить их в любой из ваших файлов виртуального хоста.

<VirtualHost *:80>

    DocumentRoot /var/www/mywebsite

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ErrorDocument 404 /error-pages/404.html
    ErrorDocument 500 /error-pages/500.html
    ErrorDocument 503 /error-pages/503.html
    ErrorDocument 504 /error-pages/504.html

</VirtualHost>

Где error-pages - это подпапка в папке mywebsite, содержащая пользовательские страницы ошибок. Убедитесь, что вы перезапустите apache, чтобы просмотреть свои изменения.

$sudo /etc/init.d/apache2 reload

Ответ 4

Независимо от того, какой URL-адрес вы вводите, поскольку страница 404 по умолчанию должна быть абсолютной или относительной из корневой папки: почему некоторые ошибаются в обработке своего URL-адреса, как URL-адрес переписывающих движков, который относителен к папке, где находится .htaccess.