Bonjour a tous !
voila j'ai un gros probleme ...
depuis 2 ou 3 mois je refait le site de mon entreprise (hebergé par online.net), les anciennes pages sont toujours referencer sur google alors que j'ai mis une page 404 perso ... je regarde le header de ma page 404perso et ca m'indique "HTTP/1.x 200 OK" (normalement le htaccess met la valeur "HTTP/1.x 404 Not Found" au header... ms pas chez online !)
mais je ne voudrai pas perdre mon referencement sur google... alors autant faire un RedirectPermantent dans le Htaccess..
Premiere surprise :
le htaccess ne permet pas d'utiliser les "RedirectPermanent" ca fait une erreur 500... J'ai demander a Online et ils m'on repondu un truc du genre : "C'est pas possible et on autre chose a faire que de reparer ca !"
Solution :
Je me suis lancer dans un script en php qui me permeterai de faire la meme chose
Forcement pour savoir ou rediriger la page il faut savoir qu'elle page a été demandée...
Seconde surprise :
la variable globale "$_SERVER['REQUEST_URI']" me donne l'adresse de ma page 404 (page 404 perso appelée grace au htaccess)
Sur EasyPHP, avec le meme script, c'est bien la valeure de la page demandée qui s'affiche
Solution :
l'url de la page demandée est toujour affichée dans la barre d'adresse du navigateur, je vais donc la recuperer en javascript ...
Nouveau probleme :
le javascript fait planter la fonction header() ... c'est normal me direz vous !
Voila je sais pu quoi faire ...
Mon htaccess (qui marche)
la variable $p permet d'inclure le message d'erreur dans le desing du site, la meme page est charger si on met une valeur incorrect a $p (faites le test sur le site si vous voulez)
mon code actuel :
Merci d'avance a tous ceux qui essaient de m'aider !
voila j'ai un gros probleme ...
depuis 2 ou 3 mois je refait le site de mon entreprise (hebergé par online.net), les anciennes pages sont toujours referencer sur google alors que j'ai mis une page 404 perso ... je regarde le header de ma page 404perso et ca m'indique "HTTP/1.x 200 OK" (normalement le htaccess met la valeur "HTTP/1.x 404 Not Found" au header... ms pas chez online !)
mais je ne voudrai pas perdre mon referencement sur google... alors autant faire un RedirectPermantent dans le Htaccess..
Premiere surprise :
le htaccess ne permet pas d'utiliser les "RedirectPermanent" ca fait une erreur 500... J'ai demander a Online et ils m'on repondu un truc du genre : "C'est pas possible et on autre chose a faire que de reparer ca !"
Solution :
Je me suis lancer dans un script en php qui me permeterai de faire la meme chose
Forcement pour savoir ou rediriger la page il faut savoir qu'elle page a été demandée...
Seconde surprise :
la variable globale "$_SERVER['REQUEST_URI']" me donne l'adresse de ma page 404 (page 404 perso appelée grace au htaccess)
Sur EasyPHP, avec le meme script, c'est bien la valeure de la page demandée qui s'affiche
Solution :
l'url de la page demandée est toujour affichée dans la barre d'adresse du navigateur, je vais donc la recuperer en javascript ...
Nouveau probleme :
le javascript fait planter la fonction header() ... c'est normal me direz vous !
Voila je sais pu quoi faire ...
Mon htaccess (qui marche)
Code:
ErrorDocument 404 /index.php?p=err&error=404
mon code actuel :
Code:
$error = @$_GET['error'];
<script>
var URL = document.location.href;
</script>
<?
$request_URL = "<script>document.write(URL);</script>";
$referrer = @$_SERVER['HTTP_REFERER'];
if (ereg("gamme2.htm", $request_URL)){$redirect='http://www.la-palmeraie.fr/index.php?p=Catalogue';}
if (ereg("gamme3.htm", $request_URL)){$redirect='http://www.la-palmeraie.fr/index.php?p=Catalogue';}
if (ereg("gamme4.htm", $request_URL)){$redirect='http://www.la-palmeraie.fr/index.php?p=Catalogue';}
if (ereg("ventes.html", $request_URL)){$redirect='http://www.la-palmeraie.fr/index.php';}
//....
if (@$redirect!='')
{
header("Status: 301 Moved Permanently", false, 301);
header("Location: ".$redirect);
}
else
{
if($error=='404')
{
header("HTTP/1.0 404 Not Found", false, 404);
}
}
?>
Merci d'avance a tous ceux qui essaient de m'aider !