Online files stored on a web server have, most of the time, many references pointing to these files.
In my case, my web hoster decided that I had to take away files stored in a folder called downloads. However many links from my phpbb3 forum pointed to that directory. Needless to say, that this would require a lot of manual work adjust all these links.
An automatic solution would have been: Change URLs. However this would only have covered the phpbb3 forum referenced URLs, not some links I send friends in order to download stuff.
A much more elegant server based solution is to work with .htaccess redirection/rewrite mechanisms.
URL pointing to this directory: http://www.olddomain.com/downloads/
URL should be redirected to this directory: http://www.newdomain.com/downloads/
The following .htaccess file, located in the downloads directory, rewrites URLs:
Options +FollowSymLinks RewriteEngine on RewriteRule (.*) http://www.newdomain.com/downloads/$1 [R=301,L]
The user doesn’t even notice that the files are downloaded from a different location than the announced URL.