doomer2 Posté 15 Octobre 2005 Posté 15 Octobre 2005 (modifié) Bonsoir, Voici ce que j'ai mis dans mon htaccess : ErrorDocument 404 /erreur404.phpErrorDocument 403 /erreur403.php Le probléme est que lorsque je tombe sur la page erreur404, je ne peux plus me déplacer à nouveau dans le site, je m'explique : la racine de mon site est http://contyloeuillysc.free.fr/ puis je clique sur un lien erroné par exemple : http://contyloeuillysc.free.fr/site/presentation/index.php qui me renvoie vers erreur404.php. Jusque là tout va bien. Une fois mon erreur404.php affiché ok j'ai bien compris que le lien n'existait plus donc je veux retourner à la racine du site donc je clique sur accueil et là le hic : observez toutes les url de la page erreur404 obtenu, ils conservent la base de la page erronée : http://contyloeuillysc.free.fr/site/presen...emesfichier.php alors que par exmeple si jeveux retourner à l'accueil je devrais avoir http://contyloeuillysc.free.fr/index.php et non http://contyloeuillysc.free.fr/site/presentation/index.php Je précise que j'utilise des liens relatifs et non absolus comme bcp de monde sur ce site sur free. Mon htacess est on ne peut plus simple; Je ne comprends pas. A l'aide s'il vous plait. Modifié 15 Octobre 2005 par doomer2
doomer2 Posté 15 Octobre 2005 Auteur Posté 15 Octobre 2005 (modifié) Je vois que beaucoup de monde lit mon petit probléme mais que personne n'a la solution. Cela m'inquiéte, j'ai bcp utilisez mon ami google et je ne trouve pas de solution non plus !! Les liens sur votre fichier erreur404.php sont en absolu ou relatif ? je vous mets le contenu de mon fichier erreur404.php : <?php $chemin=".";$referer = getenv('HTTP_REFERER'); // on récupère l'URL de la page d'origine$uri = $_SERVER['REQUEST_URI']; // on récupère l'URL de la page cause de l'erreur$ip_visiteur = $_SERVER['REMOTE_ADDR']; // on récupère l'IP du visiteur (pour stats - facultatif)$date = date('d/m/y',time()); // on récupère la date de l'erreur (pour stats - facultatif)$heure = date('h:m:s',time()); // on récupère l'heure de l'erreur (pour stats - facultatif)// On décide d'envoyer cette erreur par mail : on prépare donc le contenu :$contenu_mail = "Erreur $erreurLe $date à $heureIP du visiteur : $ip_visiteurReferer : $refererURI : $uri ";mail("****@****.**","$date : erreur $erreur",$contenu_mail,"From:erreurs@$erreur.site");?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head><title>Erreur 404</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><meta http-equiv="Content-Style-Type" content="text/css" /><meta http-equiv="Content-Language" content="fr" /><link rel="stylesheet" type="text/css" href="http://contyloeuillysc.free.fr/leger.css" title="Style par Defaut"/><link rel="stylesheet" type="text/css" href="http://contyloeuillysc.free.fr/print.css" media="print" /></head><body><div id="conteneur"> <? include ("$chemin/test/accessibilite.php"); ?> <h1 id="titre">Sporting Club Conty-Loeuilly<span id="feuille"></span></h1> <? include ("$chemin/test/menuhorizontal.php"); ?> <div id="gauche"> <? include ("$chemin/test/menugaucheaccueil.php"); ?> </div> <div id="contenu"> <div id="breadcumb"> <?php include_once($chemin.'/test/breadcrumb.inc'); $breadcrumb = new breadcrumb; echo "<p>Vous êtes : ".$breadcrumb->show_breadcrumb()."</p>";?> </div> <p> <script type="text/javascript" src="date.js"></script> </p> <h2>Erreur 404 : cette page est introuvable ou n'est plus valide </h2>......... J'obtiens bien mon mail avec le lien erroné mais aprés impossible de se déplace dans la feuille erreur404.php. Par contre si dans le .htaccess je remplace : ErrorDocument 404 http://contyloeuillysc.free.fr/erreur404.php Dans mon mail je n'obtiens plus $uri mais maintenant je peux me déplacer dans mon fichier erreur404.php car les liens sont correctes. Je ne sais pas quoi faire. Modifié 15 Octobre 2005 par doomer2
Boo2M0rs0 Posté 15 Octobre 2005 Posté 15 Octobre 2005 Tu peux modifier les liens de la page 404 et rajouter un / devant chaque url, ce qui aura pour effet de reconsidérer les liens à partir de la racine du site. Tu peux aussi spécifier un le tag base dans la partie head du code html: <base href="http://contyloeuillysc.free.fr/" /> Mais il faut un lien absolu dans ce cas :/ Tu peux aussi réaliser une page 404.php qui fera une redirection par header et menera à une page 404 situé à la racine, le soucis c'est qu'il faut là aussi l'url absolue :/ <?phpheader("HTTP/1.1 302");header("location: http://contyloeuillysc.free.fr/erreur404.php");?> Mais si les liens absolus te dérenge simplement au cas où tu changerai d'adresses: tu peux te servir de php, pour retrouver le chemin absolu: $url_abs = "http://" . $_SERVER['HTTP_HOST'] . ($_SERVER['SERVER_PORT'] == '80'? '': ':' . $_SERVER['SERVER_PORT']) . "/";
Compte supprimé Posté 15 Octobre 2005 Posté 15 Octobre 2005 (modifié) C'est pas un gros problème. Le problème est que tu défini une variable $chemin que tu ne maitrise pas : l'erreur peut survenir depuis n'importe quelle page de l'arborescence. essaie $chemin="http://contyloeuillysc.free.fr/"; le plus simple pour gérer l'arborescence est d'utiliser le <base href="http://contyloeuillysc.free.fr/" /> edit: avec un train de retard Modifié 15 Octobre 2005 par jeroen
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant