Параметры для поддержки мультидоменности
параметр |
значение
|
описание
|
$ PARAMS['site_use_domain']
|
1|0
|
Включение поддержки мультдоменности. Задается в index.php
При включении мультдоменности параметр $ PARAMS['error_404'] не будет обрабатываться.
Начиная с версии 4.4.147 параметр error_404 может быть задан в корне сайта и в корне веток доменов. |
$ PARAMS['site_lock_domain']
|
1|0
|
При запросе страницы, которая находится в ветви другого домена, будет выдаватся код ошибки 404 с выдачей страницы, где задан запрошенный домен.
При отключенном параметре посетителя перенаправят на первый домен из списка доменов ветви с запросом нужной страницы |
site_domain
|
www.domain.com
www.domain2.com
domain2.com
|
Задает список доменов, к которому принадлежат объекты внутри ветви где задан список доменов.
Домен, заданный первой строкой, используется для переадресации посетителя при запросе страницы из ветви домена.
при использовании модификатора acc=1 к параметру site_domain ветви добавляются site_domain родителей. домены ветви будут иметь приоритет над доменами родителей
Параметр должен быть задан отдельным полем в таблице
|
site_one_domain
|
1|0 |
Задаёт использование только одного домена. Не требует мультидоменности и отдельного включения параметра site_use_domain. Может быть задан в корневом разделе или для ветви сайта.
Это полезно при оптимизации сайта для удаления зеркал. С помощью этого параметра, например, можно все запросы на mydomain.com перенаправлять на www.mydomain.com.
При включении параметра все запросы с синонимов домена будут перенаправляться на домен, указанный первичным в конфигурации сервера (SERVER_NAME)
Если задан параметр site_domain, то перенаправление будет идти на первый домен в списке параметра site_domain
|
error_404 |
|
Указывает идентификатор страницы-заглушки, которая выводится, если запрашиваемая страница не найдена. Начиная с версии 4.4.147 этот параметр может быть задан в корне сайта.
Страница заглушки не должна иметь параметр "ЧПУ" или "домашная страница" иначе вместо отдачи поисковикам кода 404 будет отдаватьтся код 301 - перенаправление. |
Если основной домен при параметре site_one_domain отключен или будет находиться на другом сервере, то доступ к управлению сайтом будет потерян. В этом случае нужно использовать ftp, чтобы добавить в index.php параметр site_domain_off со значением 1:
$PARAMS['site_domain_off'] = 1;
Примеры запросов, результатов и условий:
http://www.domain.com/
Посетитель получает страницу 1 (по умолчанию)
- домен не прописан или задан в корне сайта.
Посетитель получает страницу, где прописан домен
- домен прописан в site_domain страницы
если домен прописан в нескольких ветвях сайта, то для показа выбирается объект, находящийся ближе к корню дерева и выше по списку среди объектов на одном уровне.
http://www.domain.com/?id=...
Посетитель получает запрошенную страницу
- запрошенный домен нигде не прописан и нет записей доменов в корне ветви запрошенной страницы
- запрошенный домен прописан в site_domain в корне ветви запрошенной страницы
Посетитель получает страницу, где прописан запрошенный домен и сообщение об ошибке
- site_domain_lock = 1 и домен не прописан в site_domain в корне ветви у запрошенной страницы
Посетитель получает запрошенную страницу, но при этом перенаправлен на другой домен
- site_domain_lock = 0 и домен не прописан в site_domain в корне ветви у запрошенной страницы
Посетитель перенаправлен на этот же домен с изменением адреса с /?id=... на /news
- для запрошенной страницы прописан параметр site_home_page и в корне ветви задан site_domain, включающий запрошенный домен
Посетитель перенаправлен на другой домен с изменением адреса с /?id=... на /news
- site_domain_lock = 1, запрошена страница ветви с другим доменом и для этой страницы был задан параметр site_home_page
http://www.domain.com/news
Посетитель получает ожидаемую страницу news соответствующего домена
- в корне ветви задан site_domain, включающий запрошенный домен, для запрошенной страницы прописан параметр site_home_page
Посетитель получает страницу news соответствующего домена, которая не соответвует ожидаемой
- в ветви с параметром site_domain, содержащим запрошенный домен, есть несколько страниц с запрошенной site_home_page и ожидаемая страница находится глубже или ниже по списку, чем показанная.
если site_home_page прописан внутри ветви с заданным в site_domain доменом в нескольких местах, то приоритет будет за страницей, которая ближе к корню всего дерева и ближе к началу среди объектов на одном уровне
Посетитель получает страницу с сообщением об ошибке
- site_domain_lock = 1 и внутри ветви с запрошенным доменом нет объекта с запрошенной site_home_page
- site_domain_lock = 0 и на всем сайте нет объекта с запрошенной site_home_page
Посетитель получает страницу news другого домена с перенаправлением на другой домен, что не соответвует ожидаемому результату.
- site_domain_lock = 1
- site_domain_lock = 0
- запрошенной site_home_page нет в ветви домена
site_home_page задан в
site_home_page задан в выше по дереву без домена
site_home_page задан в выше по дереву с доменом
site_home_page задан в другой ветви
1. когда нет доменов, но есть дубликаты
2. когда есть мультидомены и могут быть дубликаты при запросе комбинаций домен+домашняя страница
как проверить
1. выбрать site_domain редактируемой страницы
2. для каждого домена из site_domain выбрать ветви где он задан
3. для каждой ветви выполнить поиск site_home_page на заданное значение (parents_id like "1,.....%")
и второй способ, который может не учесть вложенности доменов
1. выбрать site_domain редактируемой страницы
2. выбрать дубликаты site_home_page
3. для доменов в site_domain редактируемой страницы проверить наличие домена в site_domain дубликатов