Status: 301 Moved Permanently

Discussion dans 'Netlinking, backlinks, liens et redirections' créé par spyk, 14 Mars 2006.

  1. spyk
    spyk Nouveau WRInaute
    Inscrit:
    14 Mars 2006
    Messages:
    9
    J'aime reçus:
    0
    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)
    Code:
    ErrorDocument 404 /index.php?p=err&error=404
    
    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 :
    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 !
     
  2. phpmikedu83
    phpmikedu83 WRInaute passionné
    Inscrit:
    6 Août 2005
    Messages:
    1 012
    J'aime reçus:
    0
    Php, c'est interprété coté serveur, donc interprété avant le javascript ;-)
     
  3. spyk
    spyk Nouveau WRInaute
    Inscrit:
    14 Mars 2006
    Messages:
    9
    J'aime reçus:
    0
    oué ca je sais, avec mon code j'arrive a recuperer la valeur "document.location.href" dans le php mais ca fait planter le header...
    je sais que c'est forcement pas la bonne solution et je cherche une alternative ...
     
  4. mr_go
    mr_go WRInaute passionné
    Inscrit:
    21 Septembre 2005
    Messages:
    1 688
    J'aime reçus:
    2
    Pas la peine de répéter hein... ;)

    Il faut executer le script PHP avant toute autre envoi.
    Dans ce cas, tu envoie un header HTML en premier (car balise <script>).

    Ton fichier doit commencer par

    <?php
    ... ton script
    ?>


    Atention, ne saute pas de ligne ou n'ajoute pas d'espace dans ton début de fichier, la balise doit être bien située au premier caractere du fichier...

    @+
     
  5. spyk
    spyk Nouveau WRInaute
    Inscrit:
    14 Mars 2006
    Messages:
    9
    J'aime reçus:
    0
    vous me donnez pas beaucoup de solutions ...
    tu dit que je repete ms vous me repondez ce que j'ai dit dans mon premier message : "le javascript fait planter la fonction header()"

    Je sais bien que pour le header() il ne faut que du code php avant, c'est pour cela que je vous demande une solution car moi je ne sais plus quoi faire.
     
  6. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    tu recupere ton adresse en javascript, il te suffit de la recuperer en php à la place, et de faire ton traitement en php :
    $_SERVER['REQUEST_URI']

    voilà la solution que tu attendais :)
     
  7. mr_go
    mr_go WRInaute passionné
    Inscrit:
    21 Septembre 2005
    Messages:
    1 688
    J'aime reçus:
    2
    Tu n'as pas posté en double au début ? C'était pour cela, en aucun cas pour ton probleme. ;)

    <a cote>
    +1 pour E-Kiwi,
    $_SERVER['REQUEST_URI']
    Et tous tes problemes s'envolent ;)
    </a cote>
     
  8. phpmikedu83
    phpmikedu83 WRInaute passionné
    Inscrit:
    6 Août 2005
    Messages:
    1 012
    J'aime reçus:
    0
    T'aurais pu prendre la peine de lire le post!
    Ca t'aurait éviter de répondre à côté :lol:
     
  9. spyk
    spyk Nouveau WRInaute
    Inscrit:
    14 Mars 2006
    Messages:
    9
    J'aime reçus:
    0
    effectivement je l'avais poster en double (j'ai rectifier)

    sinon pour le $_SERVER['REQUEST_URI'] j'ai marquer ca dans mon premier post :

    Code:
     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 
     
  10. mr_go
    mr_go WRInaute passionné
    Inscrit:
    21 Septembre 2005
    Messages:
    1 688
    J'aime reçus:
    2
    Seconde solution: changement d'hébergeur ? =)

    Pas facile à imposer dans son entreprise je le reconnais, mais pour ton cas, et étant donné la bonne foi de ton prestataire cela pourrait s'avérer payant. ;)
     
  11. spyk
    spyk Nouveau WRInaute
    Inscrit:
    14 Mars 2006
    Messages:
    9
    J'aime reçus:
    0
    oué j'y ai penser mais bon mon site est pas bien gros ,
    je pense pas que soit valable de changer d'hebergeur pour ca ... surtt qu'on a 2 autres sites chez eux !

    enfin si jamais vous avez une autre idée je suis preneur ! meme juste une piste
     
  12. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    au temps pour moi :)
     
  13. BobbySixKiller
    BobbySixKiller WRInaute discret
    Inscrit:
    17 Février 2005
    Messages:
    173
    J'aime reçus:
    0
    Je me pose une grande question récemment, je gère plusieurs sites, avec des changements notoires dans l'architecture, nom des pages qui changent ( pour le référencement ), hébergé en mutualisé chez 1and1, avec un paquet de bonne redirections 301.

    Le problème : 1&1 n'aime pas trop diriger l'erreur 404 .. chaque changement de nom de fichier impose une nouvelle ligne dans le .htaccess .. y'à t-il un moyen de générer ce dernier avec une adresse de fichier php ? Ou de procéder à un quelconque include en son sein ?

    Pour info j'ai à peu près 300 redirections de la sorte .. Le projet était un foutoir à ses départs, trop rapidement référence :roll:
     
  14. HawkEye
    HawkEye WRInaute accro
    Inscrit:
    23 Février 2004
    Messages:
    13 857
    J'aime reçus:
    5
    Si tu veux pouvoir traiter ces pages pour les rediriger en 301, il ne faut pas les déclarer en 404 auparavant, mais traiter la redirection directement depuis l'URI à rediriger.

    ++
     
  15. BobbySixKiller
    BobbySixKiller WRInaute discret
    Inscrit:
    17 Février 2005
    Messages:
    173
    J'aime reçus:
    0
    Pourtant, sur un site hébergée chez ovh, je peux parfaitement declarer 404.php pour erreur 404 et faire des redirections à volonté selon l'URI .. bien plus simple qu'éditer l'htaccess
     
  16. HawkEye
    HawkEye WRInaute accro
    Inscrit:
    23 Février 2004
    Messages:
    13 857
    J'aime reçus:
    5
    Il a l'air de ramer un peu plus ;)

    Perso, ce que je ferais, c'est ceci (en considérant que toutes les pages doivent dégager...):

    Dans .htaccess:

    Code:
    RewriteEngine On
    RewriteRule ^(.*)$ error.php?uri=$1 [L]
    Dans error.php:

    Code:
    <?php
    // décision, et définition logique de $redirect_url sur base de $_GET['uri']
    
    (yours to define...)
    
    // Redirection 301 vers l'URL défini plus haut
    
    	header("Status: 301 Moved Permanently", false, 301);
    	header("Location: ".$redirect_url."");
    exit;
    ?>
    
     
  17. BobbySixKiller
    BobbySixKiller WRInaute discret
    Inscrit:
    17 Février 2005
    Messages:
    173
    J'aime reçus:
    0
    Sur la base d'un rewrite 404 ..
    avec un fichier de fonctions toujours inclus, ça marche aussi ;)

    Plus qu'à faire un switch($URI) pour rediriger ;)

    Par contre vous ne vous êtes jamais étonnés d'avoir une page sans pagerank indexée et première des résultats google sur une dizaine de mots clefs ?
     
Chargement...
Similar Threads - Status 301 Moved Forum Date
Redirection Status: 301 Moved Permanently prob référencement Netlinking, backlinks, liens et redirections 25 Novembre 2005
Ancienne font toujours appelée par le site, status 301 Demandes d'avis et de conseils sur vos sites 21 Juillet 2021
Suppression d'index.php, Xenu m'affiche status code: 301 (ob Problèmes de référencement spécifiques à vos sites 14 Février 2008
Status 301 j'ai un doute sur la rédaction Administration d'un site Web 30 Juin 2003
Quels traitements pour ces payment_status de Paypal ? e-commerce 27 Avril 2017
Status pour site annonce 2 personnes Droit du web (juridique, fiscalité...) 21 Janvier 2013
"Status code http" different selon outils de vérification Débuter en référencement 25 Avril 2011
Perte du status "administrateur" sur un compte Google Analytics Google Analytics 7 Avril 2011
Quel status légal pour de faibles revenus Adsense ? Monétisation d'un site web 15 Octobre 2010
monit status Administration d'un site Web 13 Juillet 2010
website status est inactif sur whois alors que le site est actif Problèmes de référencement spécifiques à vos sites 4 Août 2009
besoin d'explication "domaine indispo .. status" Débuter en référencement 20 Janvier 2009
[Résolu] Connaître le status d'une Balise IMG Développement d'un site Web ou d'une appli mobile 8 Décembre 2008
domaine volé: status ok / clientTransferProhibited Noms de domaine et référencement 24 Octobre 2007
Maj Extension Firefox: Google PageRank Status 0.9.8 Netlinking, backlinks, liens et redirections 10 Mai 2007
Notre status en France Administration d'un site Web 6 Février 2007
[Résolu] Status de différents serveurs Développement d'un site Web ou d'une appli mobile 21 Avril 2006
Question pour rédaction Status SARL Le café de WebRankInfo 26 Septembre 2005
Recherche modèles de status pour SARL AdSense 26 Août 2005
Pour les Firefoxeux : Google pagerank status Netlinking, backlinks, liens et redirections 26 Août 2005