web-dev-qa-db-fra.com

Problèmes d'erreur 404 personnalisés avec Apache - le ErrorDocument est également 404

J'essaie de créer une erreur 404 personnalisée pour mon site Web. Je teste cela en utilisant XAMPP sous Windows.

Ma structure de répertoire est la suivante:

error\404page.html
index.php
.htaccess

Le contenu de mon fichier .htaccess est:

ErrorDocument 404 error\404page.html

Cela produit le résultat suivant:

alt text

Cependant, cela ne fonctionne pas - est-ce quelque chose à voir avec la façon dont les barres obliques sont ou comment je devrais référencer le document d'erreur?

site les documents du site résident dans un sous-dossier de la racine Web si cela fait une différence dans la façon dont je devrais faire référence?

Merci d'avance.

Quand je change le fichier pour être

ErrorDocument 404 /error/404page.html

Je reçois le message d'erreur suivant qui n'est pas ce qui se trouve à l'intérieur du fichier html que j'ai lié - mais il est différent de ce qui est répertorié ci-dessus:

alt text

24
Malachi

La directive ErrorDocument , lorsqu'elle est fournie un chemin URL local, s'attend à ce que le chemin soit pleinement qualifié à partir de DocumentRoot . Dans votre cas, cela signifie que le chemin réel vers le ErrorDocument est

ErrorDocument 404 /JinPortfolio/error/404page.html

Lorsque vous l'avez corrigé lors de votre deuxième essai, la raison pour laquelle vous voyez cette page à la place est que http://localhost/error/404page.html n'existe pas, d'où le fait qu'il y ait une erreur 404 dans la localisation du document de gestion des erreurs.

59
Tim Stone

Les fichiers .htaccess sont désactivés par défaut dans Apache ces jours-ci, en raison de problèmes de performances. Lorsque les fichiers .htaccess sont activés, le serveur Web doit le vérifier à chaque hit dans chaque sous-répertoire d'où il réside.

Je pensais juste qu'il était important de le noter. Si vous souhaitez quand même activer les fichiers .htaccess, voici un lien qui l'explique:

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

11
Teekin

Au lieu de les ajouter à votre fichier .htaccess, vous pouvez les ajouter à n'importe lequel de vos fichiers hôtes virtuels.

<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 est un sous-dossier du dossier mywebsite, contenant les pages d'erreur personnalisées. Assurez-vous de redémarrer votre Apache pour afficher vos modifications.

$Sudo /etc/init.d/Apache2 reload
4

Quelle que soit l'URL que vous entrez comme page 404 par défaut, elle doit être absolue ou relative à partir du dossier racine: c'est pourquoi certains commettent l'erreur de traiter son URL comme l'URL des moteurs de réécriture qui est relative à partir du dossier où se trouve .htaccess.

1
Ekene