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.

This post has 3 Comments

  1. Read through the apache doc but have a basic question on blogs. I’m struggling to resolve it. thought you could help.
    I’ve installed wordpressmu in a subdirectory .domain is
    purchased the dedicated hosting ip. earlier i was getting 404 errors. now after setting wildcard dns entries ,blogs are getting redirected to another joomla installation. i know something wrong with htaccess can’t figure out exactly what i need to do? Obviously i don’t want to touch the main domain site.

    1. Hello suresh,

      To be honest I am not all that great with Apache set-ups and such. It almost sounds like a problem with the directory set up, but that is just a guess.

      Sorry I couldn’t be more helpful!

Leave a Reply

Your email address will not be published. Required fields are marked *