Редирект через .htaccess в зависимости от языка в браузере

Дано. Есть двуязычный сайт на Друпал. Включены русский и английский языки. Требуется сделать автоматического определения языка и перенаправить посетителей из России, Казахстана, Беларуси и Украины на русскую версию сайта, остальных – на английскую.

Решение. Язык определим из браузера, он отдается в заголовках как «Accept-Language».

 
RewriteEngine on
# редирект на русскоязычную версию сайта для русских, украинских, белорусских и казахских браузеров
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteCond %{HTTP:Accept-Language} (ru|uk|by|kz) [NC]
RewriteRule .* http://whatthefund.org/ru.html [R=302,L]
# редирект на англоязычную версию сайта для всех остальных языков
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteRule .* http://whatthefund.org/en.html [R=302,L]

Этот пример реализует редирект с корневой странички сайта на страничку http://whatthefund.org/ru.html, если браузер в заголовках отдал ru, uk, by или kz. Для всех остальных языков происходит перенаправление на страничку http://whatthefund.org/en.html.

Обратите внимание, что используется 302-й редирект, то-есть «страничка временно перемещена». Это сделано для того, чтобы поисковики не удалили из индекса корневую страничку и не отдали предпочтение одной из языковых. Если же Вы хотите, чтобы главной счаталась, допустим, русская — используйте 301-й редирект.