2010-08-03 3 views
21

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

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

error\404page.html 
index.php 
.htaccess 

Содержание моего файла .htaccess является:

ErrorDocument 404 error\404page.html 

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

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

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

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

Благодарим вас за продвижение.

Когда я изменить файл, чтобы быть

ErrorDocument 404 /error/404page.html 

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

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

+2

Вы пытались изменить косую черту на косую черту? Не уверен, поддерживает ли Apache обратную косую черту. –

+0

ErrorDocument 404 /error/404page.html - это то, что сейчас есть, и это порождает исключение 404 - однако это не исключение, которое содержится в файле html, который я связал. – Malachi

ответ

53

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

ErrorDocument 404 /JinPortfolio/error/404page.html 

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

+0

Просто объявите его в htaccess? Сообщение об ошибке сервера! –

+0

Ну, я никогда не получу его. :(Я всегда получаю ошибку! – Hydro

11

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

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

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

1

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

4

Вместо того, чтобы добавлять их в файл .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 
Смежные вопросы