Is bilingual site. Did you change the language via a redirect to pseudovector en/ . So everything works, but there is a possibility that somehow the user will turn the "wrong address", ie, enter the address site.ru/en
while in the Russian session and Vice versa. To do a forced redirect via PHP. Ie
if ($_SESSION['lang'] == en AND !preg_match("!\/en\/!",$_SERVER['REQUEST_URI'])
Russian to English, this trick works, and from English into Russian it turns out the looping. A rule in htaccess to redirect this:
RewriteRule ^en/(.*)$ ./$1 [QSA,L]
Can't understand why fixate? What does he lack? Yes, Yeshe when you change the language always knocks on the front page, ie, either site.ru either site.ru/en/. Maybe something should be changed in htaccess, because the loop does not depend on PHP code.