Hemos algunos mod_rewrite normas muy básicas:mod_rewrite urlencoding un parámetro de cadena de consulta ya urlencoded - ¿hay alguna manera de deshabilitar esto?
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 redirecciona correctamente a http://www.newdomain.com/something.swf?param=value
el problema es en esta situación:
www.olddomain.com/something.swf?param=URL_ENCODED_VALUE
lo que termina sucediendo es mod_rewrite takes que sobre él mismo para volver a urlencode el parámetro de cadena de consulta
así que lo que el usuario termina con es:
www.olddomain.com/something.swf?param=URL_ENCODED_VALUE
redirigido a
www.newdomain.com/something.swf?param=URL_ENCODED_VALUE_OF_URL_ENCODED_VALUE
por lo que terminan con un doble-urlencoded valor. ¡bochas!
Aunque entiendo que podríamos hacer una regla \?(.*)
... ?$1
para esto, estoy pensando que debe haber una manera de decirle a mod_rewrite NO a urlencode los parámetros de cadena de consulta ... nos gustaría evitar el uso de 2 reglas desde caminos válidos son:
something.swf (no query string)
y
something.swf?someparams...
así que sí, a ser posible ... sólo digo mod_rewrite: por favor, no URLEncoding de parametros de cadena de consulta ... sólo de tránsito directo a través de la nueva URL R=302
.
doh! la respuesta es, el parámetro NE. ¡lo siento! –
Está claro que sí. ¿Puedes dar una respuesta y marcarla como aceptada? (Supongo que hay un límite de tiempo para hacerlo, pero hágalo tan pronto como pueda: P) –
sí, dice que necesito 100 representantes para responder mi propia pregunta en menos de 8 horas. responderé más tarde. –