• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела wpt лично.

Помощь Как сделать мультиязычность сайта и поддомена

nfernee

Создатель
Регистрация
23 Июл 2015
Сообщения
1
Реакции
0
Здравствуйте.
Я пока новичок в битриксе, только начал во всём разбираться, и надеюсь на вашу помощь.
Мне нужно организовать такую структуру сайта:

Для просмотра ссылки Войди или Зарегистрируйся -> Переадресация по геолокации на один из языков.
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся

store.website.ru -> Переадресация по геолокации на один из языков.
store.website.ru/ru/
store.website.ru/ua/
store.website.ru/en/

landingpage1.website.ru
landingpage2.website.ru
landingpage3.website.ru
landingpage4.website.ru
...

Я сначала создал несколько сайтов, и папок назвал так /ru/, /ua/, /en/ а также /store/ru/, /store/ua/, /store/en/
а сам /store/ru/ сделал субдоменом но там какие то проблемы с шаблонами и с самими страницами,
потом оставил только три сайта это: /ru/, /ua/, /en/ и в них, в качестве второго шаблона добавил PHP выражение $_SERVER['HTTP_HOST'] == 'store.website.ru'. Но и тут тоже проблемы, почти те же самые. например если я не авторизован в субдомене store администратором то выводит форму авторизации а не саму страницу.

Подскажите пожалуйста как гибко сделать такую структуру в битриксе.
В интернете очень мало информации по мультиязычности битрикса.
А сам модуль "Локализация" мне к сожалению не подходит.
 
Здравствуйте.
Мне нужно организовать такую структуру сайта:

Для просмотра ссылки Войди или Зарегистрируйся -> Переадресация по геолокации на один из языков.
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся

store.website.ru -> Переадресация по геолокации на один из языков.
store.website.ru/ru/
store.website.ru/ua/
store.website.ru/en/

landingpage1.website.ru
landingpage2.website.ru
landingpage3.website.ru
landingpage4.website.ru
...

Я сначала создал несколько сайтов, и папок назвал так /ru/, /ua/, /en/ а также /store/ru/, /store/ua/, /store/en/
а сам /store/ru/ сделал субдоменом но там какие то проблемы с шаблонами и с самими страницами,
потом оставил только три сайта это: /ru/, /ua/, /en/ и в них, в качестве второго шаблона добавил PHP выражение $_SERVER['HTTP_HOST'] == 'store.website.ru'. Но и тут тоже проблемы, почти те же самые. например если я не авторизован в субдомене store администратором то выводит форму авторизации а не саму страницу.

Подскажите пожалуйста как гибко сделать такую структуру в битриксе.
В интернете очень мало информации по мультиязычности битрикса.
А сам модуль "Локализация" мне к сожалению не подходит.

1. У Вас на сервере должны быть созданы 6 доменов и им соответствовать 6 папок:
website.ru (с алиасом Для просмотра ссылки Войди или Зарегистрируйся, в .htaccess делаете 301 пересылку на нужный)
store.website.ru
landingpage1.website.ru
landingpage2.website.ru
landingpage3.website.ru
landingpage4.website.ru


2. Разворачиваете Битрикс на любом домене (пусть для примера website.ru), получаете начальную структуру папок и файлов (если пишите с нуля, как правило минимум - /bitrix/, /upload/ и в корне .htacсess, robots, urlrewrite, 404 и т.д.)

3. Создаете седьмую папку 'shared' (или любое другое название) и переносите туда общие папки ядра /bitrix/ и /upload/ из папки сайта website.ru

4. В каждой из шести папок сайтов делаете симлинки к этим двум перенесенным папкам:
bitrix > /var/www/...(Ваш путь).../data/www/shared/bitrix
upload > /var/www/...
(Ваш путь).../data/www/shared/upload

5. Из папки сайта website.ru (где был развернут Битрикс) оставшиеся публичные файлы копируете в каждую из пяти оставшихся папок сайтов

= имеете шесть папок под каждый домен с абсолютно одинаковым содержимым и седьмую с ядром

6. Теперь с любого домена заходите в админку (пусть для примера Для просмотра ссылки Войди или Зарегистрируйся), Настройки - Настройки продукта - Сайты - Список сайтов и создаете 12 логических сайтов.

Первая группа:

Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
(порядок сортировки ниже, чем его языковые локализации)

Для каждого сайта указываете одинаковый "Путь к корневой папке веб-сервера для этого сайта:"

/var/www/...(Ваш путь).../data/www/website.ru
Для каждого сайта указываете свою "Папку сайта:" (/ru/, /ua/, /en/, / соответственно)

Вторая группа:

store.website.ru/ru/
store.website.ru/ua/
store.website.ru/en/
store.website.ru
(порядок сортировки ниже, чем его языковые локализации)

Для каждого сайта указываете одинаковый "Путь к корневой папке веб-сервера для этого сайта:"
/var/www/...(Ваш путь).../data/www/store.website.ru
Для каждого сайта указываете свою "Папку сайта:" (/ru/, /ua/, /en/, / соответственно)

Третья группа:

landingpage1.website.ru
landingpage2.website.ru
landingpage3.website.ru
landingpage4.website.ru


Т.к. домены разные, то и "Путь к корневой папке веб-сервера для этого сайта:" для каждого будет разный:
/var/www/...(Ваш путь).../data/www/landingpage1.website.ru
/var/www/...(Ваш путь).../data/www/landingpage2.website.ru
/var/www/...(Ваш путь).../data/www/landingpage3.website.ru
/var/www/...(Ваш путь).../data/www/landingpage4.website.ru

Готово!
Вы получили 12 сайтов на общем ядре и нужной Вам доменной структурой. Каждому сайту Вы можете прописать свои языковые и региональные параметры, привязать инфоблоки, баннера, веб-формы, шаблоны пр.

Теперь меняйте для каждого публичную часть, логику перенаправлений по геолокации, навигацию и все что Вам еще от них нужно.
 
Последнее редактирование:
Создаем поддомен en.site.ru

В файле dbconn.php внизу ставишь условие
PHP:
if ($_SERVER['HTTP_HOST']==="site.ru"):
   define("USE_LANG", "ru");
else($_SERVER['HTTP_HOST']==="en.site.ru"):
   define("USE_LANG", "en");
В настройках сайта(админка,настройки, настройка продукта,сайты, список сайтов) в шаблонах ставим условие
шаблон en - Выражение php - $_SERVER['HTTP_HOST']==="Для просмотра ссылки Войди или Зарегистрируйся"
иногда нужна такая вариация
шаблон en - выражение - ($_SERVER['HTTP_HOST']==="en.site.ru" || $_SERVER['HTTP_HOST']==="Для просмотра ссылки Войди или Зарегистрируйся") && $_SERVER['SCRIPT_NAME']==="/index.php"

Пример меню
PHP:
$aMenuLinks = Array(
   Array(
     "ru",
     "http://site.ru".$APPLICATION->getCurPage(),
     Array(),
     Array(),
     ""
   ),
   Array(
     "en",
     "http://en.site.ru".$APPLICATION->getCurPage(),
     Array(),
     Array(),
     ""
   )
);
Через SSH cоздаем симпл линки на папки - bitrix, css, js, upload
программой putty

ln -s путь откуда и куда c абсолютным путем
чтобы узнать абсолютный путь <?php echo $_SERVER['DOCUMENT_ROOT'];?> или через настройки битрикса - php

ln -s /home/public_html/bitrix /home/en.site.ru/public_html/bitrix

файлы на которые не делали симпл линки, копируем в en.site.ru

для поддомена en.site.ru
в header.php указываем <meta http-equiv="Content-Language" content="en" />

осталось настроить шаблоны
 
Последнее редактирование:
Увидел интересный вариант - решения, которые создают виртуальные поддомены (меняют описания, тексты и сео), можно использовать для другого языка. Пока не очень представляю как с кнопками, но реализация показалась интересной. В частности говорю вот про Для просмотра ссылки Войди или Зарегистрируйся модуль
 
Увидел интересный вариант - решения, которые создают виртуальные поддомены (меняют описания, тексты и сео), можно использовать для другого языка. Пока не очень представляю как с кнопками, но реализация показалась интересной. В частности говорю вот про Для просмотра ссылки Войди или Зарегистрируйся модуль

Да решение интересное - может пригодится !
Однако описание автора на marketplace "Реализует возможность добавления поддоменов первого уровня к сайту" на мой взгляд не верно - это называется поддомен 3-го уровня.
 
Последнее редактирование:
Да решение интересное - может пригодится !

Однако описание автора на marketplace "Реализует возможность добавления поддоменов первого уровня к сайту" на мой взгляд не верно - это называется поддомен 3-го уровня.

Я специально дал ссылку на маркетплейс что бы не было реферала на сайт разработчика, а вы, конечно, постарались)))
 
Последнее редактирование:
Пардон - исправил! Хотя не вижу особой разницы между этими двумя ссылками.
 
Добрый день! А кто-нибудь разобрался с настройками этого самого модуля aristov.vregions? Информация на сайте разраба скуданая. В частности интересует разнос цен по регионам.
 
Назад
Сверху