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:
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:
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.
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:
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>
Où 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
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.