1. Bienvenue sur le nouveau forum WebRankInfo ! Si vous avez envie d'en parler, c'est ici :-)
    Rejeter la notice

Mon url rewriting ne fonctionne pas, besoin d'un coup de main...

Discussion dans 'URL Rewriting et .htaccess' créé par kidybio, 19 Décembre 2009.

  1. kidybio

    kidybio Nouveau WRInaute

    Inscrit:
    22 Février 2008
    Messages:
    22
    J'aime reçus:
    0
    Bonsoir à tous,
    Je souhaite transformer l'url suivante
    products_listby.php?manu_id=103
    en
    natursutten-p.php

    J'ai donc travaillé sur l'url rewriting suivante
    Code:
    RewriteRule ^natursutten-p.php$ products_listby.php?manu_id=103 [QSA,L,NC]
    
    Mais cela ne fonctionne pas, quand je clique sur le lien natursutten-p.php, j'obtiens une erreur
    Quelqu'un a une idée des erreurs que j'ai pu faire ou des autres problèmes possibles?

    Merci d'avance,

    Cordialement
    Laurent
     
  2. forty

    forty Nouveau WRInaute

    Inscrit:
    30 Octobre 2008
    Messages:
    2 178
    J'aime reçus:
    0
    c'est quoi ce répertoire /test/catalog/
    peux tu préciser ou se trouve les fichiers htaccess et products_listby.php par rapport à la racine du site?
     
  3. kidybio

    kidybio Nouveau WRInaute

    Inscrit:
    22 Février 2008
    Messages:
    22
    J'aime reçus:
    0
    test/catalog est la racine de ma boutique où se trouvent à la fois le .htaccess et products_listby.php
    Cordialement
    Laurent
     
  4. forty

    forty Nouveau WRInaute

    Inscrit:
    30 Octobre 2008
    Messages:
    2 178
    J'aime reçus:
    0
    j'écrirais sous cette forme mais ca ne changera surement rien :
    Code:
    RewriteEngine On
    RewriteRule ^natursutten-p\.php$ /products_listby.php?manu_id=103 [QSA,L,NC]
    Pour voir si la réécriture est appliquée tu peux ajouter le flag R => [QSA,L,NC,R]
    Si tu es redirigé, tu vas voir la page que le serveur cherche.
     
  5. tithom

    tithom Nouveau WRInaute

    Inscrit:
    19 Décembre 2009
    Messages:
    4
    J'aime reçus:
    0
    Bonjour,
    Pour ma part, comme je m'intéresse depuis peu à la réécriture d'adresse, j'ai du mal à utiliser RewriteRule sans RewriteCond.
    Code:
    RewriteCond %{QUERY_STRING} ^manu_id=103$
    RewriteCond %{REQUEST_URI} ^/products_listby\.php$
    RewriteRule ^(.*) http://www.monsite.com/natursutten-p.php [QSA,L,R]
    
    La première condition dit que la réécriture ne sapplique qu'aux pages contenant exactement manu_id=103 après ? et la deuxième qu'au fichier products_listby.php. Selon ton cas tu dois pouvoir en enlever une des deux ou mettre en premier le cas le moins fréquent. A noter qu'il faut échapper certains . avec \ car sinon il veut dire n'importe quel caractère mais je ne crois pas que c'est nécessaire dans l'adresse réécrite.

    Certains te diront peut être que c'est beaucoup de conditions pour rien, mais ça devrait fonctionner...

    [EDIT] Je serais tenté de dire que la règle proposée devrait fonctionner... Avec un / en plus peut être :
    Code:
    RewriteRule ^/natursutten-p\.php$ /products_listby.php?manu_id=103 [QSA]
    Avec [QSA] tu devrais toujours avoir accès à la variable manu_id.
    Si ton domaine ne pointe pas vers ton répertoire /test/catalog peut être faut il l'ajouter dans la règle ??? D'où la question de forty... soit un truc du genre (à vérifier).
    Code:
    RewriteRule ^/test/catalog/natursutten-p\.php$ /test/catalog/products_listby.php?manu_id=103 [QSA]
    Car la racine de ta boutique n'est peut être pas la racine de ton site... Avoir un unique htaccess à la racine du site me semble mieux.
     
  6. kidybio

    kidybio Nouveau WRInaute

    Inscrit:
    22 Février 2008
    Messages:
    22
    J'aime reçus:
    0
    Bonjour,
    J'ai bien essayé ta solution mais j'obtiens l'erreur suivante :
    Vraiment je ne saisis pas pourquoi, cela ne fonctionne pas...

    Laurent
     
  7. tithom

    tithom Nouveau WRInaute

    Inscrit:
    19 Décembre 2009
    Messages:
    4
    J'aime reçus:
    0
    Ce message apparait généralement lorsqu'il y a des erreurs de syntaxe.
    Excuse moi pour ma première proposition mais c'est le contraire que tu veux faire :oops: On appelle le fichier "natursutten-p.php" et on affiche "products_listby.php?manu_id=103". C'est bien ça !?!
    Je suis allé voir ton site et apparement ton "catalog" n'est pas destiné à être à la racine de ton site... Donc attention au chemin des fichiers. Pour s'en affranchir, je mettrai le htaccess à la racine du site et j'y mettrai une des règles suivantes, sachant que ^blabla$ veut dire contenant strictement blabla et blabla$ veut dire finissant par blabla :
    Code:
    RewriteRule ^/test/catalog/natursutten-p\.php$ /test/catalog/products_listby.php?manu_id=103 [QSA,L,NC]
    RewriteRule natursutten-p\.php$ /test/catalog/products_listby.php?manu_id=103 [QSA,L,NC]
    Si ça ne t'aide pas... après c'est au delà de mes compétences.
     
  8. kidybio

    kidybio Nouveau WRInaute

    Inscrit:
    22 Février 2008
    Messages:
    22
    J'aime reçus:
    0
    Bonsoir,

    Voilà, j'ai un peu travailler la question mais je n'arrive pas à finaliser mon url rewriting...

    La première étape a été de transformer

    products_listby.php?manu_id=103
    en
    products_listby.php?manu_name=natursutten

    dans la page product_listby.php

    Ensuite revient notre url rewriting

    J'ai donc codé la "chose" suivante, c'est là que cela ne marche pas, et que je suis preneur de toutes vos idées...

    Code:
    RewriteCond %{QUERY_STRING} ^manu_name=([^&]*)$
    
    RewriteRule ^products_listby\.php$ /boutique/catalog/%1-p.php? [R=301,L]
    
    RewriteRule ^([A-Za-z0-9_-]+)-p\.php$ /boutique/catalog/products_listby.php?manu_name=$1&rewriting [L]
    
    Merci d'avance
    @+
    Laurent