Rewriting de fichiers dynamiques récalcitrant

  • Auteur de la discussion Auteur de la discussion psycotrop
  • Date de début Date de début
Nouveau WRInaute
Après mettre attaché à mettre en place le rewriting et la redirection des fichiers statiques d'un de mes sites. J'essaie maintenant de passer à la réécriture des pages dynamiques après avoir lu le tuto de WRI https://www.webrankinfo.com/dossiers/techniques/tutoriel-url-rewriting

Mon objectif dans un premier temps pour test, avant de passer aux mots clés, est de simplement faire passer des url de type :

http://www.monsite.com/search.php?qs_catid=6&qs_sub_catid=55
et
http://www.monsite.com/visu.php?qs_card_id=81

en
http://www.monsite.com/recherche-6-55
http://www.monsite.com/visuel-81

Pour cela dans mon htaccess j'ai :

RewriteRule ^recherche-([0-9]+)-([0-9]+).html$ /search.php?qs_catid=$1&qs_sub_catid=$2 [L]
RewriteRule ^visuel-([0-9]+)-([0-9]+).html$ /visu.php?qs_card_id=$1 [L]

Et pourtant il ne se passe rien du tout...

J'ai certainement raté quelque chose, mais en tant que grand débutant je ne vois vraiment pas quoi

D'avance merci
 
Nouveau WRInaute
Alors j'ai commencé à trouver d'où vient mon problème, mais je ne vois toujours pas comment y remédier.

En fait je peux avoir à un ou deux paramètres genre :

http://www.monsite.com/search.php?qs_catid=6&qs_sub_catid=55

http://www.monsite.com/search.php?qs_sub_catid=55

J'arrive bien à faire fonctionner les premières, mais dès que ce présente la seconde rien ne va plus, j'ai essayé une seconde réglée spécifique pour avoir

Code:
RewriteRule ^recherche-([0-9]+)-([0-9]+).html$ /search.php?qs_catid=$1&qs_sub_catid=$2 [L]
RewriteRule ^recherche-([0-9]+)-([0-9]+).html$ /search.php?qs_sub_catid=$2 [L]

Mais rien à y faire, je cherche donc à créer une seule règle ou avec les expressions régulières je pourrais spécifier qu'un des deux paramètres ainsi que le "-" qui l'accompagne ne sont pas obligatoire.

Une idée ? Merci !
 
WRInaute impliqué
Dans ta seconde règle, tu ne devrais pas avoir seulement un nombre ?
Code:
RewriteRule ^recherche-([0-9]+)-([0-9]+).html$ /search.php?qs_catid=$1&qs_sub_catid=$2 [L]
RewriteRule ^recherche-([0-9]+).html$ /search.php?qs_sub_catid=$2 [L]

Parce tel que tu l'avais défini, tes règles étaient identiques.
 
WRInaute impliqué
J'aurai du mal à être plus précis :/

Tu as mis la même valeur, à savoir « ^recherche-([0-9]+)-([0-9]+).html$ » pour les deux « RewriteRule », forcément, la première sera toujours validée avant la seconde.

D'ailleurs, il y avait une erreur :
Code:
    RewriteRule ^recherche-([0-9]+)-([0-9]+).html$ /search.php?qs_catid=$1&qs_sub_catid=$2 [L]
    RewriteRule ^recherche-([0-9]+).html$ /search.php?qs_sub_catid=$1 [L]
 
WRInaute accro
en terme clair, tu lui dit :

réécrit moi "toto" en "titi"
réécrit moi "toto" en "tata"

tu définis deux règles différente pour le même "mot".

est-ce plus clair ?

regarde ton htaccess, et le htaccess qui t'es donné, tu ne vois pas la différence ?
 
Nouveau WRInaute
:oops: J'ai compris et effectivement maintenance cela fonctionne...

Merci beaucoup à vous deux :)

Edit: par contre il n'est pas possible d'écrire cela en une seul ligne ?, merci :mrgreen:
 
Discussions similaires
Haut