[Résolu] RewriteRule et URL dynamique

Discussion dans 'URL Rewriting et .htaccess' créé par jfb037, 21 Janvier 2011.

  1. jfb037
    jfb037 Nouveau WRInaute
    Inscrit:
    21 Janvier 2011
    Messages:
    5
    J'aime reçus:
    0
    Bonjour,
    Voici un extrait de mon htaccess
    Code:
    RewriteEngine On
    RewriteBase /professionnel/
    ErrorDocument 401 /401.html
    # ErrorDocument 404 /professionnel/non-trouve.html
    ErrorDocument 404 http://www.monsite.com/professionnel/advanced_search.php
    
    # permet d être sûr que les clients ont les modifs de css
    RewriteRule ^templates/Original/stylesheet.[0-9]+.css /professionnel/templates/Original/stylesheet.css [L]
    RewriteRule ^templates/Original/menu.[0-9]+.css /professionnel/templates/Original/menu.css [L]
    
    # redirection modif marque
    RewriteCond %{QUERY_STRING} ^manufacturers_id=10$
    RewriteRule ^product_info\.php?manufacturers_id=10(.*)$ /professionnel/product_info.php?manufacturers_id=26$1 [L]
    
    Ma redirection de marque (la dernière) ne semble pas fonctionner.
    Je souhaite rediriger :
    /professionnel/product_info.php?manufacturers_id=10&products_id=2995
    Vers :
    /professionnel/product_info.php?manufacturers_id=26&products_id=2995
    Quelqu'un aurait-il une piste ?
    Cordialement
     
  2. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Re: RewriteRule et URL dynamique

    Les query string ne doivent pas apparaitre dans le RewriteRule.

    Code:
        # redirection modif marque
        RewriteCond %{QUERY_STRING} ^manufacturers_id=10$
        RewriteRule ^product_info\.php$ /professionnel/product_info.php?manufacturers_id=26 [QSA,L]
    
    QSA permet de faire passer les paramètres URL (au lieu de ton $1).
    À voir si ton "manufacturers_id=10" ne passe pas quand même.
     
  3. jfb037
    jfb037 Nouveau WRInaute
    Inscrit:
    21 Janvier 2011
    Messages:
    5
    J'aime reçus:
    0
    Re: RewriteRule et URL dynamique

    Merci Blont,
    Cela ne semble pas fonctionner

    Quand doit-on mettre product_info\.php à la place de product_info.php ?
    Code:
        # redirection modif marque
        RewriteCond %{QUERY_STRING} ^manufacturers_id=10$
        RewriteRule ^product_info\.php$ /professionnel/product_info.php?manufacturers_id=26 [QSA,L]
    
    J'ai essayer avec et sans \, j'ai le même résultat (pas de redirection)

    J'ai essayer sans RewriteCond
    Code:
     RewriteRule ^product_info\.php?manufacturers_id=10(.*)$ /professionnel/product_info.php?manufacturers_id=26$1 [L]
    
    Pas mieux

    Voici une redirection qui fonctionne si cela peut orienter.
    Code:
    # redirection modif menu 2010
    RewriteCond %{QUERY_STRING} ^cPath=192_195$
    RewriteRule ^index\.php$ /professionnel/index\.php?cPath=444_509 [R=301,L]
     
  4. forty
    forty WRInaute passionné
    Inscrit:
    30 Octobre 2008
    Messages:
    1 929
    J'aime reçus:
    0
    Re: RewriteRule et URL dynamique

    si tu as plusieurs paramètres c'est plutôt :
    Code:
    RewriteCond %{QUERY_STRING} ^(.*&)?manufacturers_id=10(&.*)?$
    RewriteRule ^product_info\.php$ /professionnel/product_info.php?%1manufacturers_id=26%2 [L]
     
  5. jfb037
    jfb037 Nouveau WRInaute
    Inscrit:
    21 Janvier 2011
    Messages:
    5
    J'aime reçus:
    0
    Re: RewriteRule et URL dynamique

    Super forty cela fonctionne.

    Par contre j'ai besoin d'une explication de texte :
    Code:
    RewriteCond %{QUERY_STRING} ^(.*&)?manufacturers_id=10(&.*)?$
    RewriteRule ^product_info\.php$ /professionnel/product_info.php?%1manufacturers_id=26%2 [L]
    
    (.*&)
    (&.*) C'est pour remplacer tous les paramètres ? Pourquoi ils ne sont pas écrit dans le même sens ?

    %1
    %2 C'est pour rapeller ces paramètres ?

    Si je comprend bien c'est équivalent à (.*) et $1 et $2 ?

    Merci :D
     
  6. forty
    forty WRInaute passionné
    Inscrit:
    30 Octobre 2008
    Messages:
    1 929
    J'aime reçus:
    0
    Re: RewriteRule et URL dynamique

    "." veut dire n'importe quel caractère
    "*" veut dire que ce qui précède peut-être répété de 0 à l'infini
    "&" veut dire "&"
    les parenthèses c'est pour mémoriser
    "?" c'est pour dire que ce qui précède est facultatif
    => ca permet de mémoriser d'éventuels paramètres avant manufacturers_id (même principe pour les paramètres après)

    %1 correspond à la première valeur mémorisée dans un RewriteCond entre () et %2 la deuxième
     
  7. jfb037
    jfb037 Nouveau WRInaute
    Inscrit:
    21 Janvier 2011
    Messages:
    5
    J'aime reçus:
    0
    Re: RewriteRule et URL dynamique

    J'ai presque tout compris

    sauf pour le & pourquoi est-il nécessaire?
    (.*) ne suffirait-il pas ?

    Merci
     
  8. forty
    forty WRInaute passionné
    Inscrit:
    30 Octobre 2008
    Messages:
    1 929
    J'aime reçus:
    0
    Re: RewriteRule et URL dynamique

    "&" étant le séparateur de paramètres dans une url, c'est plus propre de le mettre. Sinon si tu as une url de ce type ca sera aussi redirigé : /professionnel/product_info.php?toto=123&autre_manufacturers_id=10&products_id=2995
     
  9. jfb037
    jfb037 Nouveau WRInaute
    Inscrit:
    21 Janvier 2011
    Messages:
    5
    J'aime reçus:
    0
    Re: RewriteRule et URL dynamique

    Merci beaucoup de ton aide.
    :D :D
     
Chargement...
Similar Threads - [Résolu] RewriteRule dynamique Forum Date
Problème images en https (forum phpbb) [résolu] Développement d'un site Web ou d'une appli mobile 18 Novembre 2017
[Résolu] Redirection 301 FR vers EN sur Prestashop uniquement sur outils Google ? Problèmes de référencement spécifiques à vos sites 11 Septembre 2017
[résolu] Passage à HTTPS, comment tester une page ? Développement d'un site Web ou d'une appli mobile 7 Septembre 2017
[Résolu] Redirection d'une famille d'URL URL Rewriting et .htaccess 9 Mars 2017
[Résolu] Diaporama et SEO Débuter en référencement 17 Janvier 2017
[résolu]Redirection monsite.fr/index.html sur monsite.fr et seo URL Rewriting et .htaccess 16 Janvier 2017
[resolu]Publicité facebook lié au compte instagram Facebook 12 Décembre 2016
[résolu] Récupérer des valeurs issues de javascript pour les mettre en base MySQL Développement d'un site Web ou d'une appli mobile 18 Juillet 2016
[résolu] Faire une redirection sauf pour mon adresse IP URL Rewriting et .htaccess 15 Juin 2016
[Résolu] 2 descriptions pour une même url selon requête Crawl et indexation Google, sitemaps 1 Juin 2016