2013-07-18 3 views
1

Je veux rediriger cette page avec htaccessRedirect htaccess php

products_filter.php?f16%5B0%5D=bla+bla+bla&cPath=72&M_ID=12x 

à

products_filter.php?f16%5B0%5D=bla+bla&cPath=72&M_ID=12x 

J'ai essayé (et bien d'autres façons)

RewriteCond %{QUERY_STRING} ^f16%5B0%5D=bla+bla+bla$ 
RewriteRule ^products_filter\.php$ http://www.example.com/products_filter.php?f16%5B0%5D=bla+bla&cPath=72&M_ID=12x [L,R=301] 

ce que je fais mal ici?

Répondre

1

problème utilise $ (fin de l'entrée) dans ce regex:

RewriteCond %{QUERY_STRING} ^f16%5B0%5D=bla+bla+bla$ 

Depuis votre chaîne de requête est: 16%5B0%5D=bla+bla+bla&cPath=72&M_ID=12x

Modifier cette ligne sur:

RewriteCond %{QUERY_STRING} ^f16%5B0%5D=bla+bla+bla(&|$) 

Mise à jour:

En regardant votre question, je me rends compte que vous utilisez un certain nombre de caractères spéciaux qui doivent être échappés.

RewriteCond %{QUERY_STRING} ^(f16%5B0%5D)=bla\+bla\+bla(?:&(.*)|$) [NC] 
RewriteRule ^(products_filter\.php)$ /$1?%1=bla+bla&%2 [L,R=301,NE] 

PS: Il est important d'utiliser le drapeau NE ici. Sinon, %5B et %5D seront codés par Apache.

+1

Vous êtes trop rapide! –

+0

essayé, ne fonctionne pas –

+0

Hmm en regardant votre question Je me rends compte que vous utilisez pas mal de caractères spéciaux qui doivent être échappés. Voir ma version éditée. – anubhava

0

Essayez ce code:

RewriteCond %{QUERY_STRING} ^f16%5B0%5D=bla+bla+bla 
RewriteRule ^products_filter\.php$ http://www.example.com/products_filter.php?f16%5B0%5D=bla+bla&cPath=72&M_ID=12x [L,R=301] 
+0

également essayé, ne fonctionne pas –