Howto setup a 301 redirect

A few links to setup 301 Permanent Redirect (302 follows the same logic but is for Temporary Redirect) in Apache:

One thing worth attention is the SEO-friendly redirection of non-www traffic to www. This means that if you load, say,, you will be redirected to This avoids having two different sites registered in search engines, and allows for everybody to use the same unique URL to really use your service.

This is done through a series of little things. First off, you need to install and enable mod_rewrite. On a Debian/Ubuntu system, this would be done by

sudo a2enmod rewrite

Then you need to define both URLs in your virtual host. Something like this:



Then you need to make sure rewrite is enabled for this vhost, and define the rule to rewrite the url (taken from an example on canonical hostnames in the Apache documentation):

RewriteEngine On
RewriteCond %{HTTP_HOST} !^ [NC]
RewriteRule ^/(.*)$1 [L,R]

This should be the right syntax to do it. The rest of your virtual host config can keep working as usual.

It's only fair to share...Share on Facebook
Tweet about this on Twitter
Share on LinkedIn
Share on Tumblr
Email this to someone
Posted in:

Leave a Reply

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