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.

Related Posts

Webalizer installation and use on Debian

This is a simple guide on how to install Webalizer on a Debian...

Debunking error (OS 10054) core_output_filter: writing data to the network

One of our customers has Apache logs (Xampp-based) full of this line: [Tue...