Добрый день! Кто-нибудь использует вариант многосайтовости, настроенный по первому способу, описанному в учебном курсе?
Проблема следующая (описываю дерево папок): / ../site1/ ../site2/
Существуют два сайта в корне (documentroot): 1) папка сайта: /site1/, настроен как www.site1.com 2) папка сайта: /site2/, настроен как www.site2.com
index.php в documentroot содержит код, как в учебном курсе.
При наборе в URL www.site1.com система находит путь к индексной странице сайта в публичной части сайта (/site1/index.php) и отдает ее. Аналогично для второго сайта - отдается (/site2/index.php).
Однако если в URL набран, например, такой путь: www.site1.com/test/, то обращение идет не к /site1/test/index.php, а /test/index.php. Соответственно, при обращении к www.site1.com/site2/ показывается индексная страница второго сайта, что недопустимо!
Проверял так: создал страницу /site1/site2/index.php. Набрал URL: www.site1.com/site2/ - по идее должен получить содержимое /site1/site2/index.php, однако на деле отображается /site2/index.php.
Shvakovski пишет: При наборе в URL www.site1.com система находит путь к индексной странице сайта в публичной части сайта (/site1/index.php) и отдает ее. Аналогично для второго сайта - отдается (/site2/index.php).
Два домена, две корневых папки сервера. Это многосайтовость по второму способу. Настраивайте соответственно по учебному курсу и руководствуясь статьёй выше.
Denis Sharomov пишет: Вы стали счастливым обладателем варианта первой многосайтовости, который описан в моей статье под заголовком "А если общая корневая папка?".
1. Ставим продукт в любом домене один раз. 2. Для разделения публичной части создаём в папке /var/www/denis/example папки com и net. Здесь ядро имеет путь /var/www/denis/example/bitrix для обоих сайтов, и символические ссылки создавать не требуется. 3. В настройках сайтов теперь помимо домена нужно указать папку сайта: /com и /net для первого и второго сайта. 4. Создаём индексную страницу сайта по примеру из учебного курса. Эта страница по домену будет определять текущий сайт и подключать соответствующую публичную часть. Только для этого надо было указать домены в настройках сайтов.
Денис, то есть так и получается, что если используется общая корневая папка для сайтов example.com и example.net, то при попытке обратиться к http://example.com/example/net пользователь увидит страницу из /example/net/, но произойдет это на сайте com (будет использован соответствующий шаблон)?!
В общем, на самом деле для двух доменов использовать первый способ не логично, как Вы и написали
Цитата
Первый способ предполагает, что сайты находятся в одном домене, но в разных папках. Он годится для создания сайтов на разных языках или, например, региональных сайтов одной компании.
Shvakovski пишет: Денис, то есть так и получается, что если используется общая корневая папка для сайтов example.com и example.net, то при попытке обратиться к http://example.com/example/net пользователь увидит страницу из /example/net/, но произойдет это на сайте com (будет использован соответствующий шаблон)?!
Совершенно верно, поэтому такой вариант надо делать только в крайнем случае.
Первый способ работает только в случае главной страницы сайта.
site1.ru включает индексную страницу из папки /mys1/ , site2.ru включает индексную страницу из папки /mys2/
Вот и всё что предлагает способ номер один? Код перенаправления в папку только с индекной страницы, благодаря определению по доменному имени нужной папки?
Ну вы удивили.
Как такое можно было вообще назвать многосайтовостью. Перечитал все три варианта из разных мест документации и не мог понять, неужели это имели ввиду, всё думал что-то не работает... оказалось, что это такая своеобразная шутка. "Рекомендуемый способ номер 1".
Не буду говорить, сколько времени я потратил, пока не отчаился лездть на форум в поиск.
Как такое можно было вообще назвать многосайтовостью.
Многосайтовость - это не многодоменность, а возможность привязать информацию к сайту и выводить на конкретном сайте информацию, которая только к нему относится (новости, голосования, форумы и т.д.) Это то что мы называем многосайтовостью.
А способы многосайтовости - это варианты определения текущего сайта, первый способ - по папке, второй - по домену.
Тоже столкнулся с этой проблемой. Т.е. 2 не связанных сайта (на разных доменах) будут нормально работать только при возможности настроить для них разные корневые папки. По-моему такая возможность не часто встречается при использовпнии разделяемого виртуального хостинга, а использование vps для создания двух сайтов масштаба "старт" выглядит странно.
В "помощи" и прочих "how-to" действительно явно не сказано, что функциональность многосайтовости при общей корневой папке сильно ограничена.
Цитата
А если общая корневая папка? Это не удобно в первую очередь потому что публичная часть сайтов будет общая. Но если другого варианта нет, можно настроить многосайтовость и здесь. Только для разделения публичной части в корне сайта придётся создать папки для каждого сайта и фактически получится многосайтовость по первому способу.
Попытался добиться работы 2-х сайтов при общей корневой папке путем редиректа запросов через .htaccess на разные папки. Появились проблемы с включаемыми областями страниц и цепочкой навигации. Обе проблемы возникают из-за некорректного механизма определения текущей директории при использовании многосайтовости. Хотя в настройках сайтов и указаны их директории, эти данные не учитываются ядром.
Цитата
Denis Sharomov пишет:
Многосайтовость - это не многодоменность, а возможность привязать информацию к сайту и выводить на конкретном сайте информацию, которая только к нему относится (новости, голосования, форумы и т.д.) Это то что мы называем многосайтовостью.
Цитата
Более 15 000 сайтов На «1C-Битрикс: Управление сайтом» работают и готовятся к выпуску более 15 000 различных веб-проектов.
По-моему такая возможность не часто встречается при использовпнии разделяемого виртуального хостинга, а использование vps для создания двух сайтов масштаба "старт" выглядит странно.
Дмитрий, простите, а при чём тут vps? Мне кажется, вы не вполне понимаете понятие "виртуальный сервер Apache". Не знаю, как по вашему, а по моему опыту в большинстве случаев на разделяемом хостинге предлагается несколько виртуальных серверов.
Цитата
Дмитрий пишет: Цитата
Более 15 000 сайтов На «1C-Битрикс: Управление сайтом» работают и готовятся к выпуску более 15 000 различных веб-проектов.
Шутливо
А почему вы считаете, что многсайтовость - это повод для смеха? В большинстве случаев многосайтовость по второму способу довольно трудно обнаружить: внешне это будут совершенно разные сайты в разных доменах.
Дмитрий, простите, а при чём тут vps? Мне кажется, вы не вполне понимаете понятие "виртуальный сервер Apache". Не знаю, как по вашему, а по моему опыту в большинстве случаев на разделяемом хостинге предлагается несколько виртуальных серверов.
vps привел только как решение, позволяющее конфигурировать Apache на свой вкус. Да, с виртуальными серверами погорячился, есть такие, но по моему опыту меньшинство. И, к сожалению, в этот раз не повезло. Буду искать возможность сменить хостинг.
Цитата
А почему вы считаете, что многсайтовость - это повод для смеха? В большинстве случаев многосайтовость по второму способу довольно трудно обнаружить: внешне это будут совершенно разные сайты в разных доменах.
Я скорее про многосайтовость по первому способу: www.mycompany.ru и www.mycompany.ru/en/ Намек был на такие сайты в приведенной статистике. Не принимайте серьезно, навеяло проблемой =)
Как такое можно было вообще назвать многосайтовостью. Перечитал все три варианта из разных мест документации и не мог понять, неужели это имели ввиду, всё думал что-то не работает... оказалось, что это такая своеобразная шутка. "Рекомендуемый способ номер 1".
Ситуация та-же - все думал что чего-то не донастроил....
т.е. все что приходит на local.microsoft.com перенаправляю на local.microsoft.com/_microsoft.com/
в настройках bitrix-а указываю (способ номер 1) папка сайта /_microsoft.com/ и все. Поидее должно работать, но...
При построении главного меню (bitrix:menu)
Код
$curDir = $APPLICATION->GetCurDir();
Переменной $curDir почему-то присваивается значения корня сайта / а не /_microsoft.com/ т.е. корень + папка сайта (указанная в админке)
если сделать некое изменение:
Код
$curDir=SITE_DIR.$curDir;
то главное меню прорисовывается отлично.
К сожалению такая ситуация не только с блоком меню, но и с механизмом добавления пунктов меню - не корректно создаются папки (относительно корня а не относительно директории сайта).
Напрашивается вопрос - почему функция GetCurDir() работает только с переменными сервера? И неужели сложно добавить в ее логику обработку константы SITE_DIR ? Таким образом можно ж легко достигнуть нормальной работы по "Рекомендуемый способ номер 1"
Но, если уж решили поизвращаться, попробуйте указать в настройках сайтов значение "Путь к корневой папке веб-сервера для этого сайта", возможно, вылечит вашу проблему с меню.
а действительно, как в случае с разными доменами, но одной корневой папкой будут работать внутренние страницы сайта? к примеру, если есть 2 сайта site1.com site2.com и произошел запрос на site2.com/somepage.php 404 же будет?
Denis Sharomov здравствуйте, подскажите пожалуста вот я делаю второй сайт на одном домене выводящий контент с первого сайта и использующий копию шаблона первого сайта, получается два абсолютно одинаковых сайта выводящих одно и тоже отличающиеся только урлом site.ru site.ru/s2 Для второго сайта копирую шаблон первого и переименовываю с Custom_template в Custom_template1 и применяю для второго сайта, на главной все нормально выводится а в карточке товара выдает 404 ошибку страница не найденна, так что даже нет возможности настроить компонент, если применить шаблон с первого сайта ко второму то все равно 404 ошибка, вроде все правильно сделал
Я постоянно на форуме, так что как напишите я сразу отвечу →