PDA

Просмотр полной версии : Как правильно организовать мультисайт


surfman
19.01.2011, 12:49
Есть сайт с такой структурой

Главная
-Раздел 1
-Раздел 2
-Раздел 3
-Раздел 4
-Страница 1
-Страница 2
-страница 3

Верхнее меню выводится из этого первого уровня, т.е Раздел 1...страница 3

Теперь задумал три первых раздела разнести на три разных домена.
А четвертый раздел и страницы хоть визуально останутся в верхнем меню в том же порядке(тоесть одно меню на все сайты), но относятся к Разделу 1(Domen1), тоесть нынешний Раздел 1 и Страницы - это разделы Domen1.
Нынешняя главная страница во фронтэнде никак не участвует.

Первый вариант.
Структуру дерева оставить прежней, просто припарковать домены к разделам.

Второй вариант.
Изменить структуру и вынести сайты в корень Typo3

Раздел 1(Domen1)
-Раздел 4
-Страница 1
-Страница 2
-страница 3
Раздел 2(Domen2)
Раздел 3(Domen3)

Верхнее меню можно и вручную слепить.

Какой вариант лучше выбрать, какие плюсы/минусы в будущем могут быть при проэктировании и расширении сайта, использование расширений.
Или же это лишь вопрос личного удобства работы в админке?

Vornic
25.01.2011, 18:05
Вообще, каждый поступает по ситуации, как удобней. Я многосайтовые конструкции делаю по второй описаной Вами схеме. Это оптимальней с точки зрения управления сайтом, т.е. наделения полномочий редакторам сайтов.

surfman
27.01.2011, 16:28
Так же поступил, вынес в корень дерева отдельные сайты.
Появился вопросик. Не пойму как настроить RealUrl. Вроде все правильно сделал, но когда ставлю ссылку на сайте domen1 на страницу сайта domen2, то она получается вида domen2/index.php?id=6. Тоесть полный Url не генерируется.

Vornic
27.01.2011, 16:35
Ну, для этого просто нужно правильно настроить конфиг RealUrl, тут уже писали на эту тему, повторюсь:
$RootPID = array(
'www.domen1.com' => '17',
'domen1.com' => '17',
'www.domen2.com' => '41',
'domen2.com' => '41',
...
);
т.е. привязываются доменй к узлу, и ниже:
, 'pagePath' => array(
'type' => 'user'
, 'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main'
, 'spaceCharacter' => '-'
, 'languageGetVar' => 'L'
, 'rootpage_id' => $RootPID[$_SERVER['HTTP_HOST']]
, 'disablePathCache' => 0
, 'expireDays' => 7
, 'segTitleFieldList' => 'tx_realurl_pathsegment,alias,nav_title,title'
, 'excludePageIds' => null
)

surfman
28.01.2011, 15:12
А куда вписывать
$RootPID = array(
'www.domen1.com' => '17',
'domen1.com' => '17',
'www.domen2.com' => '41',
'domen2.com' => '41',
...
);

Что то никак не работает.

Vornic
28.01.2011, 16:17
Это не забыли?
, 'rootpage_id' => $RootPID[$_SERVER['HTTP_HOST']]

surfman
28.01.2011, 16:43
Это не забыли?
, 'rootpage_id' => $RootPID[$_SERVER['HTTP_HOST']]
нет. не забыл

Vornic
28.01.2011, 16:47
если rootpage_id больше ни где не определяется, посмотрите привязки доменов к узлам в админке, и baseurl в TS сайтов.

surfman
28.01.2011, 17:33
realurl_conf.php.
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = array (
'_DEFAULT' => array (
...............
$RootPID = array(
'domen1.ua' => '1',
'domen2.ua' => '7',
'domen3.ua' => '6',
),
'pagePath' => array(
'type' => 'user',
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
'spaceCharacter' => '-',
'languageGetVar' => 'L',
'rootpage_id' => $RootPID[$_SERVER['HTTP_HOST']],
'disablePathCache' => '0',
'expireDays' => '7',
'segTitleFieldList' => 'tx_realurl_pathsegment,alias,nav_title,title',
'excludePageIds' => 'null'
) ,

................
),

);

localconf.php


$tx_realurl_config = $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'];
$TYPO3_CONF_VARS['EXTCONF']['realurl']['domen1.ua']=$tx_realurl_config;
$TYPO3_CONF_VARS['EXTCONF']['realurl']['domen2.ua']=$tx_realurl_config;
$TYPO3_CONF_VARS['EXTCONF']['realurl']['domen3.ua']=$tx_realurl_config;

$TYPO3_CONF_VARS['EXTCONF']['realurl']['domen1.ua']['pagePath']['rootpage_id']=1;
$TYPO3_CONF_VARS['EXTCONF']['realurl']['domen2.ua']['pagePath']['rootpage_id'] = 7;
$TYPO3_CONF_VARS['EXTCONF']['realurl']['domen3.ua']['pagePath']['rootpage_id'] = 6;


В TS каждого сайта прописан свой baseURL.
В админке домены созданы.

Vornic
28.01.2011, 17:46
Да, вроде всё верно. И что имеем на выходе?

surfman
28.01.2011, 18:04
На сайте domen1.ua ставлю ссылку на страницу из сайта domen2.ua.
Эта ссылка выглядит domen2.ua/index.php?id=6
А должна выглядеть domen2.ua/alias/alias

Чищу все кеши.

Vornic
28.01.2011, 18:16
Очень странно, такое впечатление что realurl вообще не включен.

surfman
28.01.2011, 18:25
Внутри каждого сайта все ссылки нормальные, а если сыылка на другой сайт - то нет.

Vornic
28.01.2011, 18:39
А... так не обрабатываются внешние ссылки?

surfman
28.01.2011, 18:54
Всмысле все сайты в одной инсталяции Typo3. Внутри дерева отдельного сайта все норма, а если из него ставить на страниуцу из ветки другого сайта, то не генерится.

Vornic
28.01.2011, 19:05
ну да, realurl воспринимает ссылку как внешний сайт - в этом причина.

surfman
28.01.2011, 19:32
и как это решается?

surfman
01.02.2011, 12:11
Так каким образом нужно заставить генерировать полный ЧПУ на внешний сайт в одной инсталяции?

Vornic
01.02.2011, 14:52
Я исчерпал варианты, надо смотреть...
А что значит внешний, есть и внутренний на этой инсталляции?

Андрей Аксенов
02.02.2011, 10:17
В шаблон сайта нужно добавить следующую конфигурацию:
# Для многодоменной конфигурации.
# Проверка страницы на связь с корневой страницей.
page.config.typolinkCheckRootline = 1
# Создание ссылок между доменами, используя схему ссылок текущего домена.
config.typolinkEnableLinksAcrossDomains = 1
# Префикс в виде тега base для локальных ссылок
config.prefixLocalAnchors = all
# Возможность показать "содержимое страницы" из другого домена
config.content_from_pid_allowOutsideDomain= 1
# Выдача заголовклв управления кешем для клиента
config.config.sendCacheHeaders = 1
# Связь результатов поиска с доменом, где они были найдены.
plugin.tx_indexedsearch.search.detect_sys_domain_r ecords = 1