Есть двуязычный сайт. Сделал смену языка через редирект на псевдодиректорию en/ . Так-то все работает, но есть вероятность, что каким-то образом пользователь обратится "не по адресу", т.е. введет адрес
site.ru/en находясь в русской сессии и наоборот. Для этого сделал принудительный редирект через PHP. Т.е.
if ($_SESSION['lang'] == en AND !preg_match("!\/en\/!",$_SERVER['REQUEST_URI'])
redirect.
С русской на английскую такой трюк срабатывает, а с английской на русскую получается зацикливание. В htaccess правило для редиректа такое:
RewriteRule ^en/(.*)$ ./$1 [QSA,L]
Не могу понять: почему зацикливается? Чего ему не хватает? Да, еше при смене языка всегда скидывает на заглавную страницу, т.е. либо site.ru либо на site.ru/en/. Может что-то нужно изменить в htaccess, потому что зацикливание не зависит от кода PHP.