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

Apache Discussion :

[url rewriting] Redirect Permanent "en dur"


Sujet :

Apache

  1. #1
    Membre habitué Avatar de php_de_travers
    Inscrit en
    Juin 2004
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 460
    Points : 190
    Points
    190
    Par défaut [url rewriting] Redirect Permanent "en dur"
    Bonjour,

    la structure de mon site a totalement changé.
    Je souhaiterais coder "en dur" les redirections vers les nouvelles pages afin que :

    http://www.mon_site.com/ma_rubrique/...lection=55&a=0

    bascule automatiquement sur

    http://www.mon_site.com/mon_url_tout...ewritee-23.htm

    IMPORTANT : les identifiants des pages ont totalement changé (55 -> 23), ainsi que les rubriques. Ce qui m'interdit de faire des trucs dynamiques en rewriting pur.

    Zavez une idée ?

    ----------------------------
    Je viens d'essayer :
    Redirect permanent ancien.html http://www.domaine.tld/nouveau.html
    trouvé dans les cours Apache du site, mais ça ne fais rien de bon.

    ----------------------------
    NE FONCTIONNE PAS NON PLUS
    RedirectPermanent /dossier/ancien_fichierl.htm http://www.ton-nouveau-site.com/nouveau-fichier.htm

    Ca doit pas être très loin de la solution mais il y a des erreurs de syntaxe que je n'arrive pas à identifier...

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Comment tu connais la correspondance 55 => 23 ? Ce que tu peux faire c'est passer par une sorte de routeur intelligent en PHP. Tu mets ceci dans le .htaccess à la racine de ton site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteCond %{QUERY_STRING} id_selection=
    RewriteRule .* routeur.php [QSA,L]
    Ensuite, c'est routeur.php qui prend le relais : ce programme est capable de déterminer vers quelle nouvelle URL rediriger. Une fois le calcul de la nouvelle URL (absolue) effectué, il fait ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    // Calcul de la nouvelle URL
    ...
     
    // Redirection permanente
    header("301 Moved Permanently");
    header("Location: ".$nouvelle_URL);
    ?>
    Très important : le code de routeur.php ne doit contenir aucune balise HTML, le fichier commence par <?php et se termine par ?>. Tu récupères la valeur de id_selection avec un classique $_GET["id_selection"].

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre habitué Avatar de php_de_travers
    Inscrit en
    Juin 2004
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 460
    Points : 190
    Points
    190
    Par défaut
    Merci Mac pour cette idée.

    Il n'y a malheureusement aucune correspondance entre les id des différentes pages sur la nouvelle et l'ancienne version.

    Je pense donc qu'il faut coder en dur. En fait, ce ne sont que 15-20 urls qui doivent être reroutées.

    Pour info, je suis chez OVH, où les rewriting sont parfois un peu rock'n roll...

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Si le nombre est limité, tu peux tout mettre dans un .htaccess à la racine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    RewriteEngine on
     
    RewriteCond %{QUERY_STRING} id_selection=55
    RewriteRule .* /mon_url_toute_bien_rewritee-23.htm [R=301,L]
     
    RewriteCond %{QUERY_STRING} id_selection=74
    RewriteRule .* /mon_url_toute_bien_rewritee-16.htm [R=301,L]
     
    ...

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

Discussions similaires

  1. [URL Rewriting] Redirect Permanent ?
    Par Baptiste Wicht dans le forum Référencement
    Réponses: 2
    Dernier message: 31/10/2007, 21h56
  2. [URL Rewriting] Redirection dossier vers lien
    Par alikharchafi dans le forum Apache
    Réponses: 13
    Dernier message: 16/10/2007, 14h48
  3. [URL Rewriting] redirection vers un répertoire
    Par wace dans le forum Apache
    Réponses: 1
    Dernier message: 31/07/2007, 16h29
  4. Url Rewriting - Redirections invisibles
    Par MicaelFelix dans le forum Apache
    Réponses: 1
    Dernier message: 21/07/2007, 20h56

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