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

La suite office 2010 béta arrive pour tous

Office 2010 en béta pour tous ! C’est ce soir que le lien a été activé et vous pouvez télécharger gratuitement la nouvelle monture de la suite Microsoft Office en béta....

Publié le par Team WebActus
Webmarketing

Les prédictions créatives d’Adobe Stock pour 2022

Adobe Stock dévoile les thématiques visuelles, du design et de l’animation qui vont marquer l’année 2022. L’article Les prédictions créatives d’Adobe Stock pour...

Publié le par Heloise Famie-Galtier