Todays .htaccess tip – How to use the www. subdomain

There is a good  reason to use www.domain.tld as your primary site, Cookie less subdomains for static content.

Today i will show you a rewrite that will redirect you to www.domain.tld if no subdomain is used:

 

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(.+\.)([a-zA-Z0-9-]+\.([a-z]{2,4})|co\.uk|me\.uk|org\.uk|priv\.no)$
RewriteCond %{HTTP_HOST} ([a-zA-Z0-9-]+\.([a-z]{2,4})|co\.uk|me\.uk|org\.uk|priv\.no)$
RewriteRule ^(.*)$ http://www.%1/ [L,QSA,R=301]

So let me explain to you what this rewrite does:

First thing we do is turn on the rewrite engine.
The following line could be translated to: “if the domain does not have a subdomain”

RewriteCond %{HTTP_HOST} !^(.+\.)([a-zA-Z0-9-]+\.([a-z]{2,4})|co\.uk|me\.uk|org\.uk|priv\.no)$

 
This line saves the domain to the variable %1:

RewriteCond %{HTTP_HOST} ([a-zA-Z0-9-]+\.([a-z]{2,4})|co\.uk|me\.uk|org\.uk|priv\.no)$

 

And last but not least we do the write to www.domain.tld and include the querystring so that we don’t break old links.
The redirect is ofc a permanent redirect, so make sure to clear your browser cache if you make any changes to the rewrite.

RewriteRule ^(.*)$ http://www.%1/ [L,QSA,R=301]