utf8 unable rawurlencode escape codificar acentos apache mod-rewrite

apache - unable - url decode php utf8



mod_rewrite urlencoding un parámetro de cadena de consulta ya urlencoded-¿hay alguna forma de deshabilitar esto? (1)

la forma de lograr esto es a través del parámetro NE (sin escape).

RewriteRule ^something.swf$ http://www.newdomain.com/something.swf [R=302,L]

de hecho debería leer

RewriteRule ^something.swf$ http://www.newdomain.com/something.swf [R=302,NE,L]

esto obligará a mod_rewrite a dejar todos los valores de cadena de consulta tal como están, sin hacer ninguna codificación / escape.

tan fácil como eso :)

Tenemos algunas reglas mod_rewrite muy básicas:

RewriteRule ^something.swf$ http://www.newdomain.com/something.swf [R=302,L]

mod_rewrite parece hacer su trabajo, y si el usuario está accediendo:

something.swf?param=value , se redirige correctamente a http://www.newdomain.com/something.swf?param=value

el problema está en esta situación:

www.olddomain.com/something.swf?param=URL_ENCODED_VALUE

lo que termina sucediendo es mod_rewrite se encarga de re-urlencode el param cadena de consulta

entonces, lo que el usuario termina es:

www.olddomain.com/something.swf?param=URL_ENCODED_VALUE

REDIRECTADO A

www.newdomain.com/something.swf?param=URL_ENCODED_VALUE_OF_URL_ENCODED_VALUE

así que terminamos con un valor double urlencoded. ¡bochas!

Si bien entiendo que podríamos hacer una regla /?(.*) ... ?$1 para esto, estoy pensando que debe haber una manera de decirle a mod_rewrite NO urlencode los parámetros de la cadena de consulta ... nos gustaría evitar el uso 2 reglas desde rutas válidas son:

something.swf (no query string)

y

something.swf?someparams...

así que sí, idealmente ... solo díganle a mod_rewrite: por favor, no urlencoding de los parámetros de la cadena de consulta ... simplemente pasen directamente a la nueva URL a través de R=302 .