Navigation

Toutes les catégories

Filtrer par auteur

Voir les derniers articles

Apache – Mettre en place des RewriteRules comprenant des paramètres

Si vous souhaitez mettre en place des RewriteRules contenant des paramètres, il vous faudra passer des RewriteCond ou par le drapeau QSA. En effet, une URI pour Apache s´arrête...

Logo Apache

Si vous souhaitez mettre en place des RewriteRules contenant des paramètres, il vous faudra passer des RewriteCond ou par le drapeau QSA.

En effet, une URI pour Apache s´arrête après l´extension de fichier.  Le ? détermine la fin de celle-ci, et le début de ce qu´on appelle la Query String, chaine de variables.

Le mod_rewrite ne permet pas de modifier cela depuis une rewriteRule. Mais on peux y accéder par deux moyens :

  1. si on veux juste faire suivre cette chaine, il faut un drapeau [QSA] a la fin de toutes tes règles par lesquelles ton url va passer.
  2. si on veux modifier ta query string, tu dois faire une rewriteCond et mettre en motif tes possibilités de variables, la query string est :
    RewriteCond %{QUERY_STRING} nomvar=([0-9]+)  puis appelle ce motif par les variables serveurs % : RewriteRule ^url1$ url2 ?autrenom= %1  où %1 sera le résultat de ta variable…

Dans la pratique cela donne :

On veut rediriger test.php ?p=ok&n=0 sur test-tout-va-bien.html et test.php ?p=ok&n=1 vers test-tout-est-revenu.html

Nous allons donc tester la valeur de n pour savoir sur quelle page redirigée :

[bash]

RewriteCond %{QUERY_STRING} n=0

RewriteRule ^/test\.php /test-tout-va-bien.html [R=301, L]

RewriteCond %{QUERY_STRING} n=1

RewriteRule ^/test\.php /test-tout-est-revenu.html [R=301, L]

[/bash]

Cependant cette technique n’est pas parfaite car en vrai elle redirigera avec les paramètres. Cela donnera dans notre exemple :

test.php ?p=ok&n=0 sur test-tout-va-bien.html ?p=ok&n=0 et test.php ?p=ok&n=1 vers test-tout-est-revenu.html ?p=ok&n=1

Pour ma part je trouve ce fonctionnement un peu lourd et hasardeux… Je n’ai pas réussi à simplement échapper le caractère « ? ». De plus, les paramètres suivent la requête… Je suis donc preneur d’une meilleure solution.

Newsletter WebActus

Abonnez-vous pour recevoir notre sélection des meilleurs articles directement dans votre boîte mail.

Nous ne partagerons pas votre adresse e-mail.

Articles similaires

Webmarketing

Rédiger un contrat de vente  : 10 astuces et modèles gratuits

Pour faire simple, un contrat de vente est une attestation qui confirme qu’une personne (Vendeur) transfert la propriété d’un bien à une autre personne (bénéficiaire) en...

Publié le par Elodie
Webmarketing

SEO : des données structurées pour ajouter le label LIVE à ses vidéos sur Google

Vous souhaitez obtenir le label LIVE pour vos vidéos en direct sur Google ? C’est désormais possible, à condition...

Publié le par Thomas Coeffe