erreur 404

Mammouth du PHP | 620 Messages

22 août 2009, 17:34

Bonjour,
j'ai créé un .htaccess dans lequel j'ai mis : ErrorDocument 404 / erreur_404.php
j'ai créé un page personalisée erreur_404.php que j'ai mis à la racine de mon site internet.

dans la logique si je rentre une mauvaise adresse sur mon site internet, je devrais avoir ma page d'erreur 404 qui s'affiche non ?
Je n'ai donc pas ma page perso 404 qui s'affiche et c'est toujours celle de mon hebergeur qui s'affiche.

Savez vous et pouvez vous me dire d'ou peut provenir mon erreur ?

Mammouth du PHP | 2937 Messages

22 août 2009, 17:38

Corrige ton .htaccess comme suit :

Code : Tout sélectionner

ErrorDocument 404 /erreur_404.php
sans espace après le /.

Mammouth du PHP | 620 Messages

22 août 2009, 17:43

je viens d'essayé et meme sans l'espace ma page n'est pas prise en compte.

Mammouth du PHP | 2937 Messages

22 août 2009, 17:52

Es-tu sûr que ton hébergeur accepte les fichiers .htaccess ? En outre, vérifie si ton hébergeur ne propose pas « sa propre méthode » pour ajouter une page d'erreur 404 personnalisée.

Quant au fichier .htaccess, il doit être édité en ASCII (pas d'édition en UTF-8).

Mammouth du PHP | 620 Messages

22 août 2009, 18:07

oui il accept bien les .htaccess car je l'utilise pour mettre des mot de passe sur des repertoires de temps en temps.
Quant au fichier .htaccess, il doit être édité en ASCII (pas d'édition en UTF-8).
et bien en principe je fais mes htaccess avec notepad et jusqu'a présent sa ne ma jamais posé de problème.

Mammouth du PHP | 2937 Messages

22 août 2009, 18:28

Essaie en indiquant l'URL absolue de ta page 404 :

Code : Tout sélectionner

ErrorDocument 404 http://tonsite.com/erreur_404.php

Mammouth du PHP | 620 Messages

22 août 2009, 18:32

pareil avec l'url absolue.

par contre j'ai trouvé une autre solution qui fonctionneet qui prend les fichiers html htm et php.

Code : Tout sélectionner

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) /errors/404.php ErrorDocument 400 /errors/404.php ErrorDocument 401 /errors/404.php ErrorDocument 403 /errors/404.php ErrorDocument 404 /errors/404.php ErrorDocument 500 /errors/404.php RemoveType x-mapp-php4 .html
C'est un code que j'ai trouvé en passant par google mais je ne le comprend pas. En tout cas sa fonctionne mais pourquoi ?

Mammouth du PHP | 2937 Messages

22 août 2009, 18:47

par contre j'ai trouvé une autre solution qui fonctionneet qui prend les fichiers html htm et php.

Code : Tout sélectionner

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) /errors/404.php ErrorDocument 400 /errors/404.php ErrorDocument 401 /errors/404.php ErrorDocument 403 /errors/404.php ErrorDocument 404 /errors/404.php ErrorDocument 500 /errors/404.php RemoveType x-mapp-php4 .html
C'est un code que j'ai trouvé en passant par google mais je ne le comprend pas. En tout cas sa fonctionne mais pourquoi ?
Explication : si aucun fichier (!-f) ou aucun répertoire (!-d) n'est trouvé pour la requête demandant un nom de fichier ou de répertoire (les deux conditions RewriteCond %{REQUEST_FILENAME}), alors la requête fait l'objet d'une réécriture (RewriteRule) qui la redirige vers ta page d'erreur personnalisée. Quant à la ligne RemoveType, elle ne me semble pas utile (elle sert uniquement à retirer un type MIME de la liste de ceux que le serveur doit traiter).

En tout cas, pour savoir pourquoi ton hébergeur ne prend pas en charge ta page 404 avec la seule directive ErrorDocument, le mieux est d'entrer en contact avec le support technique de ton hébergeur.