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] Comportement bizarre


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut [URL Rewriting] Comportement bizarre
    Bonjour,
    J'ai un petit site je veux faire propre et j'aimerais que les moteurs oublient les anciennes url donc Je souhaite faire une redirection permanente des url du type :
    http://www.monSite.tld/maPage.php?info=monFichier.html
    ver les urls du type :
    http://www.monSite.tld/info-monFichier
    Et surtout bien spécifier au moteur de recherche que c'est 301.
    j'ai tenté la chose suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteCond "%{QUERY_STRING}" "^(maPage\.php)?(info)=([^.]+)(\.html)$"
    RewriteRule "^(maPage\.php)?(.*)" "http://monSite.tld/info-%3" [QSA,R=301]
    Le resultat est :
    http://www.monSite.tld/info-monFichi...onFichier.html

    Franchement j'avoue que je séche lamentablement... J'ai regardé partout mais j'ai rien trouvé...
    Merci d'avance
    Gwenhaël

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Ceci me paraît plus "correct" au niveau de la syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} ^info=([^.]+)\.html$
    RewriteRule ^maPage\.php$ http://monSite.tld/info-%1 [QSA,R=301]
    Seule la partie chemin est passée à RewriteRule, la partie dite query string n'y figurera jamais. Inversement, la variable %{QUERY_STRING} ne contiendra que les paramètres, jamais le chemin de la page.

    J'ai repris, vos règles mais étant donné la présence de l'option QSA, l'ancrage n'est certainement pas de rigueur (ou alors c'est l'option QSA qui est inutile : d'autant plus que vous allez retransmettre votre paramètre info).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    Bonsoir,
    Je viens de regarder la version corrigée mais j'en perd le %1 qui est vide...
    D'autre part comment arriver à me débarrasser du "?info=monFichier.html" qui se colle toujours a la fin de l'url réécrite?
    Merci d'avance
    Gwenhaël

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par gwenhael
    Je viens de regarder la version corrigée mais j'en perd le %1 qui est vide...
    Vous devriez être plus précis, j'en ai expliqué une raison plus haut : ceci peut être dû à l'ancrage (ce qui signifierait aussi que la réécriture n'est pas effectuée puisque la condition n'est pas respectée).

    Citation Envoyé par gwenhael
    D'autre part comment arriver à me débarrasser du "?info=monFichier.html" qui se colle toujours a la fin de l'url réécrite?
    C'est extrêmement facile à réaliser s'il n'y a pas d'autres paramètres (et donc en l'absence de l'option QSA), il suffit de faire apparaître le point d'interrogation dans votre URL de réécriture, à sa fin, pour "vider" la partie query string. Dans le cas contraire, il faudra capturer les paramètres éventuels placés devant et derrière votre paramètre info (je ne vois pas d'autres solutions).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    Je viens de réussit grâce au ? à la fin du rewriteRule à nettoyer les urls.
    La régle utilisée est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteCond "%{QUERY_STRING}" "^(maPage\.php)?(info)=([^.]+)(\.html)$"
    RewriteRule "(.*)?info=(.*)" http://monSite.tld/info-%3.html? [R=301,L]
    Par contre il fait la réécriture mais dit pas du tout que c un code 301
    merci d'avance
    Gwenhaël

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    Bon bah finalement nan ca marche pas.
    Je pense que mes régles sont complétement foireuses et je trouve pas sur le net de quoi reprendre correctement donc je réexplique:
    Fut un temps mes urls étaient:
    URL A : http://www.monSite.tld/maPage.php?info=monFichier.html
    maintenant mes urls sont :
    URL B : http://www.monSite.tld/info-monFichier
    Tout en sachant que j'ai déjà des régles qui en partant des url B reecrivent des urls au modèle A pour mes scripts.
    Je souhaiterais que lorsqu'un client se connecte en utilisant une url A il soit redirigé sur la page avec l'url B et qu'en plus un code 301 soit généré.
    Quelles sont les régles qui faut inscrire dans le fichier .htaccess histoire qu'apache fasse ce qu'il doit faire ?
    Merci d'avance
    Gwenhaël

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. URL Rewriting un peu bizarre sur une app en modules
    Par leomac dans le forum Zend Framework
    Réponses: 2
    Dernier message: 20/10/2008, 09h14
  2. Erreur bizarre url rewriting .htaccess
    Par tsukasag dans le forum Apache
    Réponses: 1
    Dernier message: 31/08/2008, 11h02
  3. [URL Rewriting] Réécriture d'URL comportant %25
    Par djanke dans le forum Apache
    Réponses: 5
    Dernier message: 19/12/2007, 12h24
  4. [Débutant]infos ds session sans cookie ? url rewriting ?
    Par Satanas_et_diabolo dans le forum ASP
    Réponses: 8
    Dernier message: 10/10/2006, 17h13
  5. [Sybase] Comportement bizarre d'une table
    Par sdozias dans le forum Sybase
    Réponses: 4
    Dernier message: 03/02/2004, 10h39

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