règle htaccess pour supprimer les parameters

peine à trouver une règle .htaccess pour en supprimer les parameters. Je veux essentiellement

http://www.example.com/page/competition.html?utm_medium=email&utm_campaign=11&utm_source=11&utm_term=11.gif

réécrire à

http://www.example.com/page/competition.html

donc, tout ce qui est dans /page/compeition.html est réécrit. Reconnaissant pour toute aide. Merci d’avance

Dans votre question, vous indiquez que vous voulez que le long URI soit réécrit sur le plus court. Malheureusement, ce n’est pas très clair. En supposant que vous souhaitez simplement supprimer la chaîne de requête en utilisant une redirection , vous pouvez utiliser les éléments suivants:

RewriteCond %{QUERY_STRING} ^utm_medium=email&utm_campaign=([^&]+)&utm_source=([^&]+)&utm_term=([^&]+)$ RewriteRule ^ %{REQUEST_URI}? [R=302,L] 

C’est une condition et une règle généralisées qui vérifieront toute information utm dans la chaîne de requête. S’il est présent, supprimez la chaîne de requête.

Si vous souhaitez uniquement faire cela pour la page/competition.html , changez la règle en ceci:

 RewriteRule ^(page/competition\.html)$ /$1? [R=302,L] 

Si vous souhaitez simplement supprimer une chaîne de requête faisant partie d’une requête à la page/competition.html , vous pouvez l’utiliser à la place de ce qui précède:

 RewriteCond %{QUERY_STRING} !^$ RewriteRule ^(page/competition\.html)$ /$1? [R=302,L] 

Cela demande à Apache de vérifier si la chaîne de requête n’est pas vide et, si ce n’est pas le cas, de la supprimer complètement.

Pour rendre la redirection permanente, modifiez 302 à 301 .

En règle générale, vous devriez pouvoir utiliser les éléments suivants:

 RewriteRule ^(.*)$ $1? [END,QSA] 

La clé de cette règle est le point d’interrogation de fin qui n’apparaîtra pas dans l’URL de sortie.

RewriteRule ^ (. *) $ $ 1? [END, QSA] Cette règle a été remplie, la nouvelle URL est http://www.example.com/page/competition.html

Essayez-le comme suit:

http://htaccess.madewithlove.be/

Voulez-vous cela uniquement pour la page spécifique? Ou plus comme une approche générale?

 RewriteRule ^page/competition.html?(.+)$ /page/competition.html [L,NC] 

Ce serait la forme la plus simple pour y parvenir, mais ne fonctionnerait que pour le nom de fichier exact. Pour une approche plus générale, vous devez append d’autres espaces réservés.