@maiskiykot
Free coder

Как правильно переадресовать запросы?

Есть двуязычный сайт. Сделал смену языка через редирект на псевдодиректорию 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.
  • Вопрос задан
  • 89 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Arik
лучше в УРЛ держать код языка, так и для СЕО хорошо. Если кто перейдет с поисковика на английскую версию вы им русскую? В сессиях имеет смысл хранить, когда переходишь на какие доп страницы в виде ЛК или настроек, а все что публично лучше с префиксами языка
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы