Bonjour à tous,
dans le but d'afficher une page d'erreur personnalisée, j'ai ajouté à mon fichier .htaccess plusieurs directives ErrorDocument qui redirigent toutes vers une URL locale unique (/erreur.php) à la racine du serveur.
erreur.php contient des include, des CSS , des liens et des images avec des chemins relatifs et affiche un message d'erreur en fonction de la variable REDIRECT_STATUS.
Supposons que j'essaie d'accéder au document inexistant http://www.monsite.fr/blabla.html , j'obtiens bien ma page erreur.php qui traite une erreur 404. De même si j'essaie d'accéder au dossier inexistant http://www.monsite.fr/blabla .
Le problème survient dès que l'on se situe dans au moins un sous-dossier, que ce dernier existe ou non.
Par exemple, j'accède au fichier http://www.monsite.fr/blabla/blabla.html (idem si j'accède au dossier http://www.monsite.fr/blabla/ , notez le "/" à la fin contrairement à l'exemple ci-dessus). Je suis bien redirigé vers ma page erreur.php avec REDIRECT_STATUS = 404 mais tous les éléments de ma page sont désormais basés sur le répertoire blabla/ . J'ai donc des éléments manquants, des images qui ne s'affichent plus, des liens erronés et une mise en page qui a disparu.
J'ai essayé plusieurs choses sans succès. En particulier, l'utilisation d'une URL externe http://www.monsite.fr/erreur.php ne convient pas car l'erreur est alors "masquée" (REDIRECT_STATUS = 200).
Des suggestions ?
Merci par avance.
Partager