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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽