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

Obtenir plus d’engagement grâce à une collecte de données efficace, l’exemple de L’Oréal

Qualifio, solution pour développer l’engagement et la fidélisation client grâce à la collecte de données first- et zero-party, explique comment il a accompagné L’Oréal dans la...

Publié le par Alexandra Patard
Webmarketing

Instagram : 6 outils pour programmer vos stories

Vous voulez gagner du temps dans la gestion de vos stories Instagram  ? Vous souhaitez publier à des heures où vous n’êtes pas connecté...

Publié le par Celine Albarracin