@hdtor

Сайт на двух языках?

Всем привет.
Есть сайт над двух языках, языки выбираются и записываются в куки, вот код:

if($lang == "ru") {
	setcookie($_COOKIE['lang'], $lang);
} else { 
	setcookie($_COOKIE['lang'], "ua");
}

header("Location: " . $_SERVER['HTTP_REFERER']);


Все работает все гуд. Но понадобилось, чтобы сайт открывался по такой ссылке:

mysite.com/ru
mysite.com/en

Прописал в .htaccess следующее:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteCond %{HTTP:Accept-Language} (ru) [NC]
RewriteRule .* http://mysite.com/ru [R=302,L]
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteRule .* http://mysite.com/ua [R=302,L]


Но проблема в том что сайт лежит в корне. А оно открывает папку ru или en. Как сделать так чтобы и первая и вторая ссылка открывала корень сайта?
  • Вопрос задан
  • 503 просмотра
Пригласить эксперта
Ответы на вопрос 2
edli007
@edli007
full stack, team lead
Есть атрибут lang в HTML
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Так, спокойно, бывает и такое еще )
Так, ну-с, начнем с того что все что приходит на любой урл, который не существует и на любой урл который не картинка/цсс/жс/чтонадоеще перекидываем на index.php.
например так:

В .htaccess:
RewriteBase /
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
RewriteRule !\.(js|ico|gif|jpg|png|css|pdf|mov|mp3)$ index.php


Далее в коде парсим урл, разделяя его по "/", если в нужном месте стоит один из языков - меняем язык отображения на нужный. Далее любая магия на Ваш выбор - инклуды нужного языка, запрос к базе языковых переменных, массив слов перевода - варианты извращений не бесконечны, но весьма разнообразны, в 90х-00х народ чего только не лепил ))

PS: ПОЧИТАЙТЕ ПРО ОБЪЕКТЫ, MVC, СОВРЕМЕННЫЕ МЕТОДЫ РАЗРАБОТКИ, ФРЕЙМВОРКИ...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы