Recently we renamed a URL which was publically available. The system uses Apache httpd, so it was quiet easy to create a RewriteRule:
RewriteRule ^/oldname/(.*) /newname/$1 [R,L]
Unfortunately that didn’t work as expected. A URL like myserver/oldname?myprop=name with spaces
will be encoded to myserver/oldname?myprop=name%20with%20spaces
. With the above RewriteRule
the rewritten URL will be myserver/oldname?myprop=name%2520with%2520spaces
. It got encoded two times!.
To fix this, you need the right keywords and Google. Searching for mod_rewrite url encode
revealed that adding the NE
flag (for No Encoding) does the trick:
RewriteRule ^/oldname/(.*) /newname/$1 [R,NE,L]