Problème classique de réécriture et de redirection 301

Discussion dans 'URL Rewriting et .htaccess' créé par Chewee, 13 Avril 2011.

  1. Chewee
    Chewee WRInaute occasionnel
    Inscrit:
    16 Février 2005
    Messages:
    258
    J'aime reçus:
    5
    Bonjour tout le monde,

    J'ai un petit problème de réécriture d'URLs à vous soumettre.
    Je pense que mon cas est hyper classique donc ça devrait aller...

    J'ai volontairement schematiser la structure de mes URL pour l'exemple.
    Voilà...

    Jusque là, j'ai un certain nombre (voire un nombre certain) de pages indexées sur Google avec des URL du type "page.php?param1=5&param2=9"

    Je voudrais que désormais ces pages soient accessible via "page-5-9.html" (et que ce soit cette URL qui apparaisse dans la barre d'addresse)

    J'ai donc fais la réécriture suivante :

    RewriteRule ^page-([0-9]+)-([0-9]+)\.html$ http://www.example.com/page.php?param1=$1&param2=$2 [L]

    Ca va faire le boulot, pas de soucis de ce côté là à priori.

    Mon soucis est qu'évidemment, je ne veux pas perdre le référencement de ces pages avec les anciennes URL... Donc je pense à un système de redirection 301 et c'est là que ça se complique dans mon cerveau.

    Si je fais un truc du genre :

    RewriteRule ^page-([0-9]+)-([0-9]+)\.html$ http://www.example.com/page.php?param1=$1&param2=$2 [R=301,L]

    J'ai l'impression que la redirection qui est effectuée est l'inverse de celle que je voudrais...
    En gros, ça dit que c'est page.php qui est la nouvelle adresse de page-xx-yy.html non ?

    Bref... Comment feriez-vous exactement ? Suis-je dans le vrai ?
    (Je vous avais dis que c'était très bateau comme cas...)

    Merci d'avance...
     
  2. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    On s'occupe par le commencement.
    Tu veux bouger une adresse vers une autre avec une redirection permanente :
    Code:
    RewriteCond %{QUERY_STRING} ^param1=([0-9]+)&param2=([0-9]+)$
    RewriteRule ^page\.php$ http://www.example.com/page-%1-%2.html [L,R=301]
    
    « %1 » et « %2 » récupère les paramètres de RewriteCond.

    Ensuite, il faut spécifier que la nouvelle adresse soit réécriture à l'ancienne pour garder le même fonctionnement qu’auparavant :

    Code:
    RewriteRule ^page-([0-9]+)-([0-9]+)\.html$ page.php?param1=$1&param2=$2 [L]
    
    Ce qui donne pour terminer :
    Code:
    RewriteCond %{QUERY_STRING} ^param1=([0-9]+)&param2=([0-9]+)$
    RewriteRule ^page\.php$ http://www.example.com/page-%1-%2.html [L,R=301]
    
    RewriteRule ^page-([0-9]+)-([0-9]+)\.html$ page.php?param1=$1&param2=$2 [L]
    
    En théorie, ce devrait passer. En pratique, tu auras peut-être une erreur 500.
     
  3. Chewee
    Chewee WRInaute occasionnel
    Inscrit:
    16 Février 2005
    Messages:
    258
    J'aime reçus:
    5
    Code:
    RewriteCond %{QUERY_STRING} ^param1=([0-9]+)&param2=([0-9]+)$
    RewriteRule ^page\.php$ http://www.example.com/page-%1-%2.html [L,R=301]
    
    RewriteRule ^page-([0-9]+)-([0-9]+)\.html$ page.php?param1=$1&param2=$2 [L]
    
    OK merci je pense avoir compris.

    Il y a juste un truc que je ne comprends pas trop.
    Le [L] sert bien à lui dire d’arrêter d'analyser les instructions suivantes dans le .htaccess ?
    Dans ce cas, après le 1er RewriteRule, comment le serveur sait où trouver la page correspondant à page-%1-%2.html ?

    L'instruction suivante est quand même exécutée ?
     
  4. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    En fait, la première instruction force le navigateur à recharger une nouvelle page.
    Ce qui signifie que la requête ne sera plus la même. Pour la seconde requête, la première règle ne sera pas validée, ce sera donc la seconde qui sera étudiée.
     
  5. Chewee
    Chewee WRInaute occasionnel
    Inscrit:
    16 Février 2005
    Messages:
    258
    J'aime reçus:
    5
    OK Merci beaucoup !

    Je mets ça en application et si je reviens si j'ai des questions...
     
Chargement...
Similar Threads - Problème classique réécriture Forum Date
Problème classique : site référencé avec www et sans... Problèmes de référencement spécifiques à vos sites 2 Février 2014
WordPress Problème affichage style avec Elementor (titre, bordures, separateur) Administration d'un site Web 8 Août 2022
Problème d'indexation de backlinks Débuter en référencement 24 Juillet 2022
Problème d'indexation de backlinks Problèmes de référencement spécifiques à vos sites 21 Juillet 2022
Probleme de visibilité de ma page Facebook Facebook 5 Juillet 2022
problème avec le développeur Droit du web (juridique, fiscalité...) 22 Juin 2022
Problème désindexation des pages de Google Débuter en référencement 21 Juin 2022
Problème d'indexation de pages sur Google Problèmes de référencement spécifiques à vos sites 31 Mai 2022
problème de redirection non souhaitée Administration d'un site Web 28 Avril 2022
Problème d'indexation Produits Prestashop Crawl et indexation Google, sitemaps 28 Avril 2022
Problème d'affichage des campagnes Google Ads dans un tableau de bord Data Studio AdWords 26 Avril 2022
Problème de vitesse d'affichage des pages sur Analytics Google Analytics 26 Avril 2022
Problème : Google Crawl et Index des pages en No Index et bloqué par le robot.txt Crawl et indexation Google, sitemaps 26 Avril 2022
Problème avec GA4 : nb de visiteurs temps réel et par jour Google Analytics 19 Avril 2022
Problème indexation pages précises en React.js Débuter en référencement 19 Avril 2022
Problème de référencement Demandes d'avis et de conseils sur vos sites 8 Avril 2022
Problème adsence : Annonces ne s'affichent plus AdSense 10 Mars 2022
problèmes procédures stockées Administration d'un site Web 9 Mars 2022
Problème récupération fichier vps Développement d'un site Web ou d'une appli mobile 5 Mars 2022
Problème config postfix. Administration d'un site Web 5 Mars 2022