2011-06-07 16 views
7

Usando esta regla en un archivo de configuración de máquina virtual lleva a una doble escape de los parámetros de consulta:Apache 2 reescritura con cadena de consulta escapó dos veces

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

Por ejemplo:

http://example.com?f=hello%20world 

Conduce a

https://example.com?f=hello%2520world 

Tenga en cuenta el "% 25" que escapa del signo "%". Por qué está pasando esto ?

Respuesta

14

intenta agregar la etiqueta [NE] (noescape) al final de la regla de reescritura:

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NE] 

Esto sucede porque & y ? y algunos otros se escaparon por defecto en el proceso de reescritura.

+0

Muchas gracias, esto resolvió el problema. – gaspard

Cuestiones relacionadas