# .htaccess permanent redirect to www

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]

RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin1wp-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  - ## 3 Answers 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]

-
+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.

-

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
-