2011-08-30 19 views
6

Tengo un problema relacionado con .htaccess y QUERY_STRING.htaccess QUERY_STRING urldecode

trato de redirigir una URL con mi .htaccess que tiene este aspecto:

http://mydomain.tld/out/http%3A%2F%2Fotherdomain.tld%3Fparam%3D0 

a

http://otherdomain.tld?param=0 

utilizo RewriteCond y RewriteRule con el REQUEST_URI para redirigir la url y todo funciona bien, ya que REQUEST_URI está urldecodificado de forma predeterminada en htaccess.

Sin embargo, cuando envío el enlace a Hotmail por correo electrónico, Hotmail urldecodes las barras diagonales y el signo de interrogación. El resultado es el siguiente:

http://mydomain.tld/out/http%3A//Fotherdomain.tld?param%3D0 

Así .htaccess toma el enlace e intenta volver a dirigir, pero debido al signo de interrogación del .htaccess "piensa" todo atrás el signo de interrogación es un QUERY_STRING.

El problema: apache2 no edita el código QUERY_STRING. Entonces, ¿qué sucede es que htaccess redirige a

http://otherdomain.tld?param%3D0 

que fallará.

Así que mi pregunta es:

¿Cómo puedo saber .htaccess a cualquiera urldecode el QUERY_STRING o utilizar la dirección URL solicitada completo (ya sea urlendcoded o serán decodificados) incluyendo la parte que sigue al signo de interrogación

Gracias de ¡avanzar!

Saludos

+0

que también tienen un problema similar http://stackoverflow.com/questions/8464298/rewrite-and-url-decoding Tampoco podía obtener una respuesta. ¿Lo has resuelto? – dstonek

Respuesta