Redirect www to non www URL Using HTACCESS

The Internet is full of resources and all these resources are uniquely identified by Uniform Resource Locators (URLs). Importance of the uniqueness of URLs can not be overstated and need not be explained. It is very simple to understand! Most web servers and browsers consider www and non www URLs as same. For example, theoretically: is same as

But some web servers and search engines (like Google) may consider these URLs to be different. Both of the URLs point to the same resource. So, we have two URLs to access one resource. Such a situation causes content duplication and content duplication is a cardinal sin in the eyes of search engines. They put a heavy penalty on websites hosting duplicate content.

Internet is a dynamic system. Here resources change and so do the URLs. Therefore, redirection is a common phenomenon on the Internet. Webmasters deploy a few methods to redirect www URL to non www URLs (or the other way round, i.e. redirect non-www URL to www URL). the easiest method to achieve this is to use .htaccess file wherein you can permanently redirect (301 redirect) one form of the URL to another form. Let’s learn how to carry out such redirection. But before that, let’s see what all you would need:

Make a decision

First of all, you would need to decide which format you prefer. You want to keep your website’s URLs in www format or non www format. Whichever you choose, stick to one format. Do not mix www and non www URL formats.
Make sure mod_rewrite module of Apache is available.

Modifying .htaccess will require you to have access on your server. If you’re writing a blog on a free platform (like, you would not be able to access or change .htaccess file. But in such a case you would not any way need to make such changes as the blogging platform does take care of such small issues.

mod_rewrite module of Apache server

Apache server uses modules for various functionalists. mod_rewrite is a module that enables redirection and URL rewriting. If this module is installed and available on Apache server, only then your redirection will work.

If mod_rewrite is available, it will take your redirection commands from .htaccess file.

Redirect old domain to new domain

If you have changed the domain name of your website, it is highly recommended that you redirect all the old website pages to the new address. To do this, add the following in .htaccess file:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^$ [OR]
RewriteCond %{HTTP_HOST} ^$
RewriteRule ^(.*)$  [R=301,L]
Redirect www to non-www URLs and vice versa using HTACCESS.
Redirect www to non-www URLs and vice versa using HTACCESS.
Redirect www to non-www Domain

Add the following code in .htaccess file to permanently redirect all the www addresses to their non www counterparts:

RewriteEngine On
RewriteCond %{HTTP_HOST}  ^ [NC]
RewriteRule ^(.*)  [L,R=301]

Replace ‘’ with your domain name. If you want a more general sort of solution, it was offered by Ben on StackOverflow:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

As you can see, you don’t need to change anything. Just paste the above code in .htaccess and all your www URLs will be permanently redirected to the corresponding non-www URLs.

Redirect non-www to www URL

The following code will redirect all the non-www addresses of a domain to their www counterparts:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^ [nocase]
RewriteRule ^(.*)  [last,redirect=301]
www to non-www URL on a shared host server (server with multiple domains)

I am taking up this specific issue because many webmasters feel confused when the following happens:

redirects to

This situation arises on a server that hosts multiple domains. Mostly such servers are shared hosts or reseller type of hosting arrangements. Use the following code:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?example\.com)$ [NC]
RewriteRule .? http://%1%{REQUEST_URI} [R=301,L]
How to redirect an old folder to a new folder name?

As I have mentioned, you should try to avoid making changes in the URLs but sometimes it is necessary and unavoidable. In case you have to rename a folder, you should use the following code to redirect URLs with old folder to the new folder.

RewriteEngine on
RewriteRule ^/?old([a-z/.]*)$ /new$1 [R=301,L]

Do not forget to change ‘old’ and ‘new’ with the old and new names of your folder.

I hope this information was useful for you. Make sure redirection is done properly. A badly configured .htaccess can break your server. It is an extremely important file. Correct URL redirection will benefit not only your website or blog users; but also it will have a good impact on your website’s search engine optimization (SEO).

Should you have any, please feel free to ask any questions. Thank you for using TechWelkin!

16 thoughts on “Redirect www to non www URL Using HTACCESS”

  1. Redirected non-www to www for xml url from .htaccess file, its working for mozilla but didnt work for chrome

  2. Thanks for this info. I have been facing issues with redirection. This will surely help me out in solving redirection issues on my server.

  3. Very valuable article.

    Is it important to redirect from one to another or vice versa-means www to non www or from non www to with www url?

    1. Thanks Arsh, I am glad you were able to solve www redirect problem in your website. Stay connected with TechWelkin!

    1. In case of Windows hosting, most probably you’re using IIS Server (which runs code). The HTACCESS does not work on IIS Server. Instead of htaccess, you should use web.config file.

Leave a Comment

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