Recently, one of the blogs I help support wanted to change its name and location. This meant changing the virtual directory name in the URL as well. Typically, simply changing the directory name in the WordPress settings would break all incoming links, something we definitely wanted to avoid.
Fortunately, it is very easy to change the directory and seamlessly redirect users to the new site by editing the “.htaccess” file at the root of your blog.
Simply add the following line:
RewriteRule ^olddirectory(.*) newdirectory$1 [L,R]
So, in my case, I was redirecting from the old blog called “Campaign” to a new one called “Obama”, so my addition looks like this:
RewriteRule ^campaign(.*) obama$1 [R,L]
For the most part this is self-explanatory if you are familiar with regular expressions. The caret is an anchor signaling the start of the redirect directory and the (.*) is a catch-all, ensuring everything following the old directory will be included in the redirect.
The “[R,L]” at the end are flags to, first, force the redirect and, second, to show that is the end of the redirection in that particular RewriteRule. Both flags are required.
Apache has detailed documentation on using RewriteRule, including specifics on the use of flags.
Read Comments