Rewriting de fichiers dynamiques récalcitrant

  • Auteur de la discussion Auteur de la discussion psycotrop
  • Date de début Date de début
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
 
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 !
 
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.
 
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]
 
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 ?
 
: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:
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut