Webmasters Stack Exchange is a question and answer site for pro webmasters. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a WordPress installation that is not redirecting URLs not starting with www.

Example: http://example.com/dir/ doesn't send to http://www.example.com/dir/ instead goes to http://example.com/.

How do I change the .htaccess below to always redirect to the page either using www or not?

# BEGIN WordPress
RewriteEngine On

RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

# END WordPress
share|improve this question
up vote 8 down vote accepted

This snippet will force the www to always be in thew URL. I don't know if that helps you or not:

Options +FollowSymlinks
RewriteCond %{HTTP_HOST} !^(www\.|$) [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
share|improve this answer
+1 ... and this snippet should work in all cases if you put it before the RewriteRule ^index\.php$ - [L] directive. – danlefree Nov 12 '10 at 2:35
Thanks John works perfectly! – UXTE Nov 12 '10 at 9:22
danlefree, thanks for that note. That small tip fixed my issue. – Jeff K. May 8 '12 at 0:25

Altering the .htaccess shouldn't be necessary. You should only need to change the website URL under Settings -> General in the WP Admin to include the www.

If you try John's answer and you have the website URL in WP settings set to the non-www version, you will create a redirect loop.

share|improve this answer

I would mix the two answers above

  1. you HAVE to set properly the website URL So that the CMS always prints the correct address
  2. you can set a proper rewrite rule so that in case someone links the wrong URL (no-www) you don't end up with Google indexing all pages twice penalizing the SEO ranking
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.