mod_rewrite e escapou / (% 2f) na cadeia de consulta

2

Eu quero redirecionar o seguinte URL

oldsite.com/index.htm?Page?somepath%2fsomefile

para

newsite.com/productindex.htm?p=somepath%2fsomefile

Eu tenho as seguintes regras

RewriteCond %{QUERY_STRING} ^Page=(.*)$
RewriteRule ^index.htm$ http://newsite.com?p=%1 [R=301,NC,L]

Mas redireciona para

newsite.com/productindex.htm?p=somepath%252Fsomefile
>--------------------------------------^^^^^

Existem muitas referências sobre um bug de longa data com double escaping que foi corrigido recentemente ( 2.2. 12 eu acho ) e como eu estou executando o 2.2.9 eu pensei que o sinalizador RewriteRule B pode ajudar, mas torna isso pior ...

newsite.com/productindex.htm?p=somepath%25252Fsomefile
>--------------------------------------^^^^^^^

Alguma idéia dos gurus do Apache?

    
por Ryan 14.12.2009 / 04:57

1 resposta

2

É o sinalizador NE (sem escape) que eu preciso

RewriteCond %{QUERY_STRING} ^Page=(.*)$
RewriteRule ^index.htm$ http://newsite.com?p=%1 [R=301,NC,L,NE]
    
por 14.12.2009 / 05:16