we've got some very fundamental mod_rewrite rules:

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

mod_rewrite seams to complete its job, and when the consumer is being able to access:

something.swf?param=value, it's rerouted properly to http://www.newdomain.com/something.swf?param=value

the issue is in cases like this:

world wide web.olddomain.com/something.swf?param=URL_ENCODED_VALUE

what eventually ends up happening is mod_rewrite takes it upon it self to re-urlencode the querystring param

what exactly the consumer is finish track of is:


Rerouted TO


therefore we finish track of a double-urlencoded value. boourns!

as i are evident we're able to create a ?(.*) ... ?$1 rule with this, i'm thinking there has to be a method to tell mod_rewrite To not urlencode the query string params... we wish to stay away from 2 rules since valid pathways are:

something.swf (no query string)



so yea, idealy... just tell mod_rewrit: please, no urlencoding of querystring params... just direct passthru towards the new url via r,302.



the best way to make this happen is by the NE (no escape) paramater.

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

should actually read

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

this can pressure mod_rewrite to depart all query string values because they are, without having done any encoding / getting away.

as simple as that :)