IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Header redirection 301 et URL rewriting


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Points : 120
    Points
    120
    Par défaut [Système] Header redirection 301 et URL rewriting
    Bjour,

    J'ai passé il y a quelques temps mon site un url rewriting du style:

    nomdepage-id-rubrique-titredelapage.html
    Auparavant, le format de page était: nomdepage.php?id=xx&rub=yy

    Le problème qui se pose désormais est de "supprimer" les anciens liens de annunaires.

    Je veux donc faire une redirection 301.

    Pour cela je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $ObjectUtils = new classUtils($db);
    $lien = $ObjectUtils->writeUrl($id,$return['rubrique'], $return['nom']);
    header( "Status: 301 Moved Permanently", false, 301);
    header( "Location: $lien");
    //exit();
    Mon writeUrl me permet de construire mon nouveau lien

    Mon problème est le suivant: Comment faire pour savoir depuis quelle page arrive mon visiteur ?? Je ne voudrais en effet pas rediriger en boucle, ni forcer de rediriger le visiteur à chaque page qu'il visite, le serveur ne s'en remettrais pas !
    Mon but est donc de vérifier s'il vient depuis l'ancienne URL, je fais un header, et sinon, je ne fais rien.

    Je ne peut pas me servir des variables $_SERVER, puisque dans les deux cas, cela me renvoit bien sur la même chose....

    D'avance, merci de votre aide !!! (et bon dimanche)

  2. #2
    Membre habitué Avatar de daniel61
    Inscrit en
    Décembre 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 139
    Points : 169
    Points
    169
    Par défaut
    ça arrive selon la config, en effet. une idée tordue est de copier "nomdepage.php" sans redirection dans un nouveau fichier, disons "nouvellepage.php" et tu envoi mod_rewrite sur "nouvellepage.php"... quand tout fonctionne correctement, il suffit de modifier "nomdepage.php" par des redirections sans aucun autre code.

    inverse l'ordre des header, parceque Location: a la mauvaise habitude d'écraser la réponse 301 par une 302... j'imagine que tu veux une 301 pour les bots.

  3. #3
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Points : 120
    Points
    120
    Par défaut
    slt,

    Merci de ta réponse.
    J'ai totalement la main sur le serveur, donc concernant la config, je peux en faire ce que je veux

    Je vois ce que tu veux dire avec les fichiers.
    C'est en effet un petit bidouillage, mais pourrait me sauver la vie !

    Le seul prob étant que cela va un peu m'alourdir le serveur pdt quelques temps...

    Oki pour la redirection. j'ai testé pour voir, cela fonctionnait bien en 301, mais au cas où, je vais l'inverser

    J'ai vu un mod de phpBB Seo qui gérait cette redirection si le client (ou moteur de recherche) arrivait sur la page avec l'ancienne adresse. Je vais y jeter un oeil

    merci !
    Lorsque j'aurai pris une décision sur la méthode, je la posterai et passerai le topic en "résolu"
    Si y'a d'autres avis sur la question, vous pouvez me les donner aussi

  4. #4
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Points : 120
    Points
    120
    Par défaut
    Je pense avoir trouvé le moyen d'optimiser cela:

    Dans le htaccess:

    Si l'utilisateur vient de l'ancienne adresse (et seulement dans ce cas), je le redirige vers une page de transition (301)

    Page de transition
    Construit dynamiquement le lien (récup du titre en base, etc....) et redirection 301


    J'ai bon ???

  5. #5
    Membre habitué Avatar de daniel61
    Inscrit en
    Décembre 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 139
    Points : 169
    Points
    169
    Par défaut
    tu peux aussi simplement ajouter une variable à ton RewriteRule genre &rewrite=1 et dans ton code php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(!isset($_GET['rewrite'])) {/* redirect ICI car pas de paramètre rewrite */}

  6. #6
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Points : 120
    Points
    120
    Par défaut
    ah oui, c'est encore plus propre ça !
    thanks, je tente ça dès que je rentre !

  7. #7
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Points : 120
    Points
    120
    Par défaut
    Comme cela ne fonctionnait pas, j'ai essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #Si on arrive sur le site avec l'ancienne URL
    RewriteCond %{HTTP_HOST} ^www\.exemple\.com/car\.php$ [NC]
    RewriteRule ^(.*) http://www.exemple.com/ [QSA,R=301]
    Mais il n'éxécute pas...

    Je me lance qu'à peine ds l'url rewritign, je galère un peu...

Discussions similaires

  1. redirection .htaccess ancienne url rewrite
    Par lelectronique.com dans le forum Apache
    Réponses: 13
    Dernier message: 22/01/2015, 21h57
  2. [URL Rewriting] Redirection 301, comment faire ?
    Par Kotik dans le forum Apache
    Réponses: 3
    Dernier message: 05/08/2010, 16h11
  3. [URL rewriting] Redirection 301
    Par crash.cell dans le forum Apache
    Réponses: 1
    Dernier message: 23/02/2009, 10h07
  4. Script de redirection et l'url rewriting
    Par Olivier Regnier dans le forum Web
    Réponses: 2
    Dernier message: 26/12/2007, 22h28
  5. [Système] Aide pour coder l'url rewriting
    Par brousaille dans le forum Langage
    Réponses: 3
    Dernier message: 10/10/2006, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo