2009-12-15 6 views
0

j'ai quelques pages indexées par Google, par exemple:RewriteRule à ne pas tenir compte d'une variable url

/product.html?affiliateid=142 

Je veux une règle de réécriture de redirection 301 à la même page s'il y a Jusqu'à présent, un affiliateid=xxx

I avoir ceci:

RewriteCond %{QUERY_STRING} ^affiliateid=[0-9]+$ 
RewriteRule ^$ /test.html$ [L,R=301] 

Mais cela ne fonctionne pas, je dois me débarrasser de la variable et obtenir le nom de la page en quelque sorte.

Répondre

0

Vous devez spécifier un vide requête dans votre URL de substitution pour avoir la requête demandée originale non ajouté à la nouvelle URL:

RewriteCond %{QUERY_STRING} ^affiliateid=[0-9]+$ 
RewriteRule^%{REQUEST_URI}? [L,R=301] 

Et si vous souhaitez conserver tout autre paramètre de requête, essayez ceci:

RewriteCond %{QUERY_STRING} ^(([^&]*&)*)affiliateid=[0-9]+(&+(.*))?$ 
RewriteRule^%{REQUEST_URI}?%1%4 [L,R=301] 
0

Je l'ai trouvé:

RewriteCond% {QUERY_STRING}^AffiliateID = ([0-9] +) $

RewriteRule^(. *) $/$ 1? [L, NC, R = 301]

C'est ce point d'interrogation ici/$ 1? qui indique à la règle de mettre fin à la réécriture à la chaîne de requête

Questions connexes