Jump to content

URL Rewriting et htaccess - Passage de variables persos


Recommended Posts

Bonjour à tous,

 

Je me permets de poster ici car cela fait 2 jours que je bloque sur un détail tout bête, et malgré toutes ces heures de recherches, tous mes essais restent infrutcteux...

 

J'ai créé un petit module (un tableau d'affichage des produits par taille) qui transmet à la page Category 2 variables supplémentaires en plus de l'id_category.

 

On peut donc accéder à la page Category de 2 manières :

- via le menu classique, et dans ce cas l'URL est classique (du type "/category.php?id_category=2")

- via mon module, et dans ce cas l'URL est du type "/category.php?id_category=2&id_size=27&nom_decli=taille").

 

Ensuite dans ma page Category, j'ai un petit module qui teste si les $_GET['id_size'] et $_GET['nom_decli'] existent, afin d'afficher ou non un autre tableau (..mais ça peut importe).

 

Jusque là, tout fonctionne très bien.

 

J'ai en revanche des problèmes à l'activation de l'URL rewriting.

 

La règle générée automatiquement par prestashop dans le .htaccess pour l'accès à la page Category est la suivante :

RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]* /category.php?id_category=$1 [QSA, L]

 

J'aimerai donc créer une nouvelle règle qui testerait si mes variables id_size et nom_decli existent, et si oui, les ajouter à la règle d'url rewriting.

 

J'ai essayé plein de choses, mais sans succès.

 

Par exemple :

RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]* /category.php?id_category=$1&id_size=$2 [QSA, L]

ne fonctionne pas.

 

Par contre si je met en dur une valeur pour la variable id_size :

RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]* /category.php?id_category=$1&id_size=27 [QSA, L]

 

je récupère bien mon $_GET['id_size']=27 dans ma page category.

 

 

Voilà, donc si quelqu'un a des pistes pour m'aider à trouver une solution ce serait vraiment très sympa ! C'est assez rageant de bloquer sur un problème qui semble aussi bête ....

 

Merci beaucoup par avance.

Share this post


Link to post
Share on other sites

J'ai un peu de mieux..

 

Je génère donc une URL de la forme : monsite.com/2-casques/31/taille

 

Je créé donc cette rw dans htaccess pour prendre en compte ces variables :

RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]/([0-9]+)/([a-z]+)/$ /category.php?id_category=$1&id_size=$2&nom_decli=$3 [QSA,L]

 

Mais cette URL est interprétée par une règle créée par prestashop :

RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*(/[a-zA-Z0-9-]*)+ /DEV/category.php?id_category=$1&noredirect=1&id_size=$2 [QSA,L]

 

J'ai essayé de créer d'autres rw du type :

RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*(/[a-zA-Z0-9-]*)+/(.+)/(.+)$ /category.php?id_category=$1&id_taille=$2&nom_decli=$3&noredirect=1 [QSA,L]

 

Mais rien n'y fait, l'URL est toujours interprétée par l'autre règle de réécriture.

 

Auriez-vous une idée de ce qui cloche ?

 

Merci par avance !

Share this post


Link to post
Share on other sites

  • 1 month later...

Bonjour,

 

Oui j'avais fini par trouver.

 

Dans mon cas, la règle de réécriture était la suivante :

 

RewriteRule ^([0-9]+)\.[a-zA-Z0-9-]*\.([0-9]+)\.([a-zA-Z0-9-]*)\.([a-zA-Z0-9-]*)$ /category.php?id_category=$1&id_size=$2&nom_decli=$3&nom_taille=$4&noredirect=1 [QSA,L]

 

Ceci pour une URL du type :

monsite.fr/id_category=2&id_size=12&nom_decli=XS&nom_taille=taille_vetement

 

En espérant que cela pourra vous aider...

 

Bonne journée

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More