Как организовать поддомен

Как организовать поддомен на сайте? добавил контекст но вместо
https://ufa.cloverflower.ru
работает
https://cloverflower.ru/ufa
делал как здесь webforbusiness.ru/sozdanie-poddomenov-na-timeweb/
Максим
25 марта 2018, 11:30
modx.pro
969
0

Комментарии: 6

Дмитрий
25 марта 2018, 17:57
0
Путем простого добавления контекста в админку поддомен не появится. Контекст это просто абстрактная сущность, отдельный контейнер для хранения. Поэтому нужно научить систему работать с ним.
Во-первых надо создать и привязать поддомен.
Во-вторых сделать плагин на событие OnHandleRequest c таким кодом:
<?php
// Работаем только на фронтенде
if ($modx->event->name != 'OnHandleRequest' || $modx->context->key == 'mgr') {return;}

// Определяем запрашиваемый хост
$host = $_SERVER['HTTP_HOST'];

// Выбираем контекст с настройкой base_url
$q = $modx->newQuery('modContextSetting', array('key' => 'http_host', 'value' => $host));
$q->select('context_key');

$tstart = microtime(true);
if ($q->prepare() && $q->stmt->execute()) {
	// Учитываем наш запрос в БД
	$modx->queryTime += microtime(true) - $tstart;
	$modx->executedQueries++;
	// Получаем ключ контекста
	if ($context = $q->stmt->fetch(PDO::FETCH_COLUMN)) {
		// Web инициализируется в index.php - на него переключаться не нужно
		if ($context != 'web') {
			$modx->switchContext($context);
		}
	}
}
ну и должно заработать.
    Максим
    25 марта 2018, 18:02
    0
    сделал поддомен
    внутри сайта создал папку
    ufa
    и поддомен направил на эту папку
    сделал так же
    вот настройки контекста
    base_url
    base_url
    /
    
    http_host
    http_host
    ufa.cloverflower.ru
    
     
    site_start
    site_start
    9
    
    site_url
    site_url
    https://ufa.cloverflower.ru

    и файл htaccess

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    RewriteCond %{REQUEST_URI} ^(.+)/$
    RewriteRule ^(.+)/$ /$1 [R=301,L]
    RewriteCond %{HTTP_HOST} .
    RewriteCond %{HTTP_HOST} ^www\.cloverflower\.ru$ [NC]
    RewriteRule ^(.*)$ https://cloverflower.ru/$1 [R=301,L]
    php_flag register_globals Off
    RewriteCond %{HTTP_HOST} ufa.cloverflower.ru
    RewriteCond %{REQUEST_URI} !ufa/
      Максим
      25 марта 2018, 18:06
      0
      разобрался убрал с ссылки на поддомен
      www
      и сделал так
      ufa.cloverflower.ru > cloverflower.ru/ufa
      Максим
      25 марта 2018, 18:02
      0
      www.ufa.cloverflower.ru > cloverflower.ru/ufa
        Максим
        25 марта 2018, 18:03
        0
        вот такой поддомен
          Максим
          25 марта 2018, 18:14
          0
          перенс в папку поддомена файл index.php его нужно настраивать? так как при переходе на поддомен идет 503 ошибка
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            6