Version complète: sur le forum Webmaster Hub : .htaccess erreur 404 et chemin relatif
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net
Pat AfterMoon
Dans mon fichier .htaccess j'ai :
CODE
ErrorDocument 404 /error404.php

Dans mon fichier error404.php pendant longtemps j'ai eu :
CODE
header("location: h**p://www.monsite.com");
exit;

Le comportement pour les visiteurs me convient tout à fait, ils sont redirigés à la racine de mon site, et dans leur barre d'adresse ils ont l'url de la racine de mon site.
Par contre grâce à l'outil http-viewer du HUB j'ai réalisé que mon traitement renvoyais un code 302 au visiteur, et dans le cas des moteurs, il vaudrait mieux un code 404. Du coup j'ai remplacé le code dans mon fichier error404.php par ça :
CODE
include('index.php');

Cela affiche la racine de mon site, renvoi le code 404, mais l'url erronée reste affichée dans la barre. A priori c'est ce que fait le HUB, donc je me dis que cela doit être bien.

Mais voila le problème, lorsque le visiteur fait une erreur du type h**p://www.monsite.com/rep/nimportequoi l'erreur 404 se déclenche bien, le code HTML de la racine de mon site s'affiche bien, mais pas les images, ni le css, car leur chemin est faussé par le fait qu'on est toujours dans le répertoire /rep/ (qui existe).

Que faut il faire ?
Sur le HUB, c'est bien géré, car les erreurs à la racine du site font la même chose que dans /outils/
Dan
C'est logique que tu aies une 302 vu que ta dernière redirection est basée sur header("location: ...")

Et effectivement, ce n'est pas correct.

Si tu fais un include, assure-toi que dans le fichier que tu inclus tu aies la balise <base href="..."> comme ça tes images et CSS seront correctement chargés.
Pat AfterMoon
CITATION(Dan @ jeudi 28 février 2008 à 11:07) *
Si tu fais un include, assure-toi que dans le fichier que tu inclus tu aies la balise <base href="..."> comme ça tes images et CSS seront correctement chargés.

Merci Dan, j'ai cru pendant un instant que j'allais devoir refaire tout mon site en adresse absolu !
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.