2010-08-03 21 views
21

Estoy intentando crear un error 404 personalizado para mi sitio web. Estoy probando esto usando XAMPP en Windows.Problemas de error 404 personalizados con Apache

Mi estructura de directorios es la siguiente:

error\404page.html 
index.php 
.htaccess 

El contenido de mi archivo .htaccess es:

ErrorDocument 404 error\404page.html 

Esto produce el siguiente resultado:

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

Sin embargo esto no está funcionando, ¿tiene algo que ver con la w ¿Son las barras diagonales o cómo debería estar haciendo referencia al documento de error?

los documentos del sitio funcionan en una subcarpeta de la raíz web si eso hace alguna diferencia a la forma en que debo hacer referencia?

Gracias de antemano.

Cuando cambio el archivo para ser

ErrorDocument 404 /error/404page.html 

recibo el siguiente mensaje de error que no es lo que hay dentro del archivo html que he ligado - pero es diferente a los mencionados anteriormente:

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

+2

¿Ha intentado cambiar la barra inclinada por una barra inclinada? No estoy seguro si Apache admite barras diagonales inversas. –

+0

ErrorDocument 404 /error/404page.html es lo que es ahora y arroja una excepción 404 - sin embargo, esta no es la excepción que está en el archivo html que he vinculado. – Malachi

Respuesta

53

La directiva ErrorDocument, cuando se suministra una ruta URL local espera que la ruta sea plenamente cualificado de la DocumentRoot. En su caso, esto significa que la ruta de acceso real a la ErrorDocument es

ErrorDocument 404 /JinPortfolio/error/404page.html 

Cuando se corrigió en su segundo intento, la razón por la que ver esa página en lugar se debe a http://localhost/error/404page.html no existe, por lo tanto, lo de allí siendo un error 404 al ubicar el documento de manejo de errores.

+0

¿Solo declararlo en htaccess? ¡Recibí el mensaje de error del servidor! –

+0

Bueno, nunca lo conseguiré. :(¡Siempre me da error! – Hydro

11

. Los archivos htaccess están deshabilitados por defecto en Apache en estos días, debido a problemas de rendimiento. Cuando los archivos .htaccess están habilitados, el servidor web debe verificarlo en cada hit en cada subdirectorio desde donde resida.

Acabo de figurar que era importante tener en cuenta. Si desea activar archivos .htaccess de todos modos, aquí hay un enlace que lo explica:

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

1

Cualquier URL que ingrese como página 404 predeterminada debe ser absoluta o relativa desde la carpeta raíz: es por eso que algunos cometen el error de tratar su url como la url de los motores de reescritura, que es relativa desde la carpeta donde está .htaccess situado.

4

En lugar de agregarlos a su archivo .htaccess, puede agregarlos a cualquiera de sus archivos host virtuales.

<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> 

Dónde error-pages es una subcarpeta en la carpeta mywebsite, que contiene las páginas de error personalizadas. Asegúrese de reiniciar su apache para ver sus cambios.

$sudo /etc/init.d/apache2 reload