Ninazu
@Ninazu

Как реализовать локализацию через URL?

На сайте реализовано три локализации. ru, de и en. Английский является основным. Пользователь первый раз заходит на главную страницу сайта по адресу http://mysite.com/, отправляя запрос Accept-Language: fr;q=0.9. Так как французкий не реализован, то его перенаправляет на английскую версию http://mysite.com/en/. На сайте есть форма поиска которая отправляет POST запрос на URL /search. На сервере отсутсвует сохранение состояния(сессии и аналоги)

Пробовал реализовать через .htaccess, но не знаю как правильно реализовать генерацию URL для форм и как передавать локаль. А также как подставить локаль в URL, если пользователь перейдет по ссылке без локали http://mysite.com/faq

RewriteEngine On

#Локаль по умолчанию
RewriteCond %{HTTP:Accept-Language} !^(ru|de) [NC]
RewriteRule ^$ /en/ [L,R=302]

RewriteCond %{HTTP:Accept-Language} ^ru [NC]
RewriteRule ^$ /ru/ [L,R=302]

RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ /de/ [L,R=302]

#Перенаправлять все запросы на единую точку входа
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
  • Вопрос задан
  • 225 просмотров
Пригласить эксперта
Ответы на вопрос 1
Arris
@Arris
Сапиенсы учатся, играя.
Куки. Если они отключены - предупредить пользователя, что в этом случае он получит сайт на основном языке. Какой там у вас? Английский?

Если пользователь не хочет идти навстречу - дайте ему контент по умолчанию.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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