<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1 [R=301,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
наоборот
RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1 [R=301,QSA]
Ну и простой …
Если вдруг у Вас непонятка и каша с адресами, а сами Вы запутались, то на всякий случай для себя и для остальных напомню, как создать самый простой 301 редирект всех страниц без www на страницы с www:
RewriteCond %{HTTP_HOST} !^www\.mysite\.ru$ [NC]
RewriteRule ^(.*)$ http://www.mysite.ru%{REQUEST_URI} [L,R=301]
Соотвественно, наоборот. Все страницы сайта с www направим на страницы сайта без www:
RewriteCond %{HTTP_HOST} ^www\.mysite\.ru$ [NC]
RewriteRule ^(.*)$ http://mysite.ru%{REQUEST_URI} [L,R=301]
Код будет работать для apache и .htaccess при условии, что загружен mod_rewrite.
Все, на этом пост кончился. Никакой новой истины я не открыл. А-ля блокнот.