lucy24 - 1:12 am on Jan 11, 2013 (gmt 0)
Whoops! Forgot to refresh page before typing reply, so now you've got the whole thing in two different people's words :)
What is the reason why redirects need full URLs?
If you don't give the full protocol and URL, mod_rewrite will use whatever it started out with:
RewriteRule ^something$ otherthing [R=301,L]
user requests http://www.example.com/something
user is sent to http://www.example.com/otherthing
user requests http://example.com/something
user is sent to http://example.com/otherthing
user requests http://www.example.com:port123/something
user is sent to http://www.example.com:port123/otherthing
user requests https://www.example.com/something
user is sent to https://www.example.com/otherthing
et cetera. And then if you want to canonicalize you have to do a whole nother redirect when it could have been done in a single step.