Using .htaccess to redirect from one domain to another

I recently purchased a new domain for my WordPress site and I want to redirect anyone who visits using an old domain to the new one. I haven’t moved servers, just added a new domain.

For instance, if they went to either of these:

Read More
http://www.example.net/some-article/
http://example.net/some-article/

Then I’d like them to be redirected to the appropriate URL:

http://www.example.com/some-article/
http://example.com/some-article/

How would you do this simple .net -> .com redirect with a .htaccess file? Any rule should apply to all URLs under the .net domain.

Thanks in advance.


Edit: I already have the .htaccess file on the server:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

AddHandler php5-script .php

Related posts

Leave a Reply

4 comments

  1. I would modify your existing rewrite block to look like this:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    
    # New code to redirect from example.net to example.com
    # Permanent redirect for caching purposes, also include the query string
    RewriteCond %{HTTP_HOST} ^example.net
    RewriteRule (.*) http://example.com/$1 [R=permanent,QSA,L]
    
    # New code to redirect from www.example.net to www.example.com
    RewriteCond %{HTTP_HOST} ^www.example.net
    RewriteRule (.*) http://www.example.com/$1 [R=permanent,QSA,L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    # END WordPress
    
    AddHandler php5-script .php
    

    Note that I haven’t actually tested this…

    REMOTE_HOST may also work instead of HTTP_HOST. The mod_rewrite documentation recommends using HTTP_HOST, although this will not work if the brower only understands HTTP/1.0

  2. I converted from Drupal to WordPress a while ago, and I ended up spending a bunch of time trying to get these redirects to work properly. My big hangup was figuring out how to use RewriteCond in conjunction with RewriteRule. Here’s an excerpt from an article I wrote about this:

    
    # Rewrite drupal urls to worpress
    RewriteCond %{QUERY_STRING} ^q=node/(.+)$
    RewriteRule ^(.*)$ http://blog.componentoriented.com/?p=%1 [R=301,L]
    
    # Forward RSS feed
    RewriteCond %{QUERY_STRING} ^q=rss.xml$
    RewriteRule ^(.*)$ http://blog.componentoriented.com/?feed=rss2 [R=301,L]
    RewriteCond %{QUERY_STRING} ^q=atom/feed$
    RewriteRule ^(.*)$ http://blog.componentoriented.com/?feed=rss2 [R=301,L]
    

    It’s also really helpful to keep an eye on inbound hits and links to see if anyone is using an old form of URL that you’re not translating yet. I had an inbound link that was encoded as a PostNuke URL (from two blog platforms ago!), and this technique made it really easy to fix.

    Here’s a link to my article, btw: Use .htaccess to redirect from Drupal to WordPress