How do I force all "non-WWW" url requests to my "www" domain?

This is quite simple to do in Apache with your .htaccess file (if you don't have a .htaccess file in your web root, you can add one).

The following is what I use on my site to accomplish this:
# Allow Re-Writing
RewriteEngine on

# Redirect non-www URLs to WWW
RewriteCond %{HTTP_HOST} ^site.tld$
RewriteRule ^(.*)$1 [QSA,L,R=301]

Simply replace "site.tld" with your domain on the two lines that it's mentioned, insert into your .htaccess file, and upload to your server.

Due to the non-www stance some users use, I'm also going to describe how to send all www requests to the non-www domain... Be sure that you're not using both of these as you could cause a lot of looping on your webserver.

The instructions above are still valid, however, use this .htaccess block.

# Allow Re-Writing
RewriteEngine on

# Redirect WWW URLs to non-www
RewriteCond %{HTTP_HOST} ^$
RewriteRule ^(.*) http://site.tld/$1 [QSA,L,R=301]

Posted on June 23rd, 2007


( Posted)
For the best viewing experience please update your browser to Chrome, Firefox, or Opera