Столкнулся с задачей: нужно сделать 301 редирект если сайт не начинается с www в любом случае. Если сайт запрашивает не поисковый робот, то должен произойти 302 редирект на зеркало. Если запрашивает поисковый робот, то управление должно передастся текущему домену. Даже не спрашивайте зачем это, но вот поставили такую задачу. Сейчас реализовал половину задачи в .haccess, а другую путем написания плагина для CMS.
Но способ не универсальный и пробую сделать так:
RewriteEngine On
RewriteBase /
# Редирект если не робот и начинается с www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteCond %{HTTP_USER_AGENT} !(googlebot|yandexbot|msnbot) [NC]
RewriteRule ^(.*)$ http://www.site2.com/$1 [L,R=302]
# Редирект если не начинается с www
RewriteCond %{HTTP_HOST} ^([^www].*)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
# Запуск сайта на текущем домене
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Но выходит, что после второго прохождения файла .htaccess, если домен без www, происходит все равно 302 редирект на зеркало. И вот не знаю как решить такую задачу.