Авто поддомены в ispmanager как настроить?

searchi
На сайте с 02.12.2006
Offline
181
6288

Есть необходимость настроить автоподдомены при переносе сайта с хостинга (там работало) на выделенный сервер.

Сейчас стоит панель ispmanager.

Поставив галочку "Авто поддомены - В поддиректории WWW домена"

- добавляется запись:

* A (адрес Internet v4) 91.XXX.XX.XX

Пробую проверить через nslookup -type=a pod.domen.ru

Пишет Non-existent domain

Добавил для пробы запись вручную

test A (адрес Internet v4) 91.XXX.XX.XX

пробивается test.domen.ru сразу же без проблем

В чем может быть проблема?

Спасибо.

А может 50.ru от X00 тыс. руб ()?
[Удален]
#1

searchi, технически с помощью редактирования апача

Для того чтобы все настроить нажно проделать всего три шага:

# настроить зону в named-е
# настроить вхост в apach-е
# сделать правило через mod_rewrite

1. Первым делом нам нужно добавить “A” запись в фаил зоны:
* 14400 IN A 192.168.0.1

Где * будет означать, что запись будет резолвить абсолютно любой поддомен, 14400 время обновления зоны и 192.168.0.1, это ip адрес куда будут направленны поддомены.

PS.: Стоит учитывать что named обрабатывает записи последовательно и любая запись добавленная после * не будет обработана.

2. Теперь переходим к конфигурировании веб сервера. Тут все проще, достаточно добавить директиву ServerAlias и все будет работать.

ServerAlias*.domen.ru
ServerAlias *.domen.ru

Где * будет означать что вхост обрабатывает все поддомены и все они будут направлены в один и тот же DocumentRoot, а domen.ru это наш домен.

PS.: Апач так же как и named читает конфигурационный фаил последовательно, поэтому любой поддомен добавленный ниже не будет обработан сервером.

3. Нам осталось создать правила mod_rewrite чтобы поддомен был направлен в папку домена. Создаем .htaccess следующего содержания:

Код
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^(www\.)?domen\.ru$ [NC]
RewriteCond %{HTTP_HOST}---%{REQUEST_URI} ^([^\.]+)\.domen\.ru---/([^/]+)? [NC]
RewriteCond %1---%2 !^(.*)---\1$ [NC]
RewriteCond %{DOCUMENT_ROOT}/%1/ -d
RewriteRule ^(.*)?$ %1/$1 [QSA,PT]


Теперь любая папка например http://domen.ru/slaed/ будет доступна по адресу http://slaed.domen.ru/
Но такой вариант не всегда приемлем, и иногда нужно чтобы поддомены находились в вложенной папке скажем в http://domen.ru/sub/slaed/. Для этого делаем другой .htaccess:

Код
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.domen\.ru$ [NC]
RewriteCond %{HTTP_HOST} !^www\.domen\.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/sub
RewriteRule ^(.*) %{HTTP_HOST}$1
RewriteRule ^(.*)\.domen\.ru(.*) /sub/$1$2
RewriteRule ^sub\.(.*) /sub/$1


Практически все панели управления позволяют сделать подобные вещи через внутренние интерфейсы, так что проблем быть не должно.
searchi
На сайте с 02.12.2006
Offline
181
#2
Phessiv:
searchi, технически с помощью редактирования апача, вот тут проблему решили по-другому, посмотрите.

Спасибо я эту ветку всю прочитал еще перед тем как запостить ответ. Но думал как-то можно без SSH и т.п.

KU
На сайте с 17.07.2008
Offline
251
#3

Если дадите доступ, посмотрю.

Хостинг ( https://good-host.net ) / Linux VPS ( https://good-host.net/vps ) / Windows VPS ( https://good-host.net/windows-vps ) / Выделенные серверы ( https://good-host.net/dedicated ) 14 лет онлайн!
[Удален]
#4

searchi, такого не встречал, если честно, пользовался представленной выше инструкцией :)

LM
На сайте с 18.10.2009
Offline
117
#5

В ispmanager, в настройках www домена указываем папку, где будут поддомены создаваться.

В отдельной директории - в директории /www/ у пользователя.

В поддиректории www домена - в папке /www/домен/

Нажимаем ОК. В панели при редактировании www домена можно видеть вот такое:

Стоит *.example.com - все сайты как зеркало основного домена. Если пользователь запросит несуществующий сайт, то ему сервер выдаст страницу домена example.ws, а если существующий домен - страницу домена.

В независимости от варианта - чтобы поддомен работал, нужно создать папку, например, domain.site.ru в папке, выбранной для поддоменов.

searchi
На сайте с 02.12.2006
Offline
181
#6

Всем спасибо. теперь и ping и nslookup проходят. Просто видно мало подождал. Пока не получилось настроить чтобы поддомены искались в отдельной папке subdomains а не в корне www (в корне же открываются теперь без проблем). Жаль панелька не дает это менять автоматически. Может кто подскажет где это можно подкрутить?

Вот такой рабочий (на другом хостинге) .htaccess у меня есть

Options All -Indexes

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.domain\.ru$
RewriteCond %{REQUEST_URI} !^/domain.ru/subdomains/ [NC]
RewriteRule ^(.*)$ domain.ru/subdomains/%2/$1 [QSA,L]

Но что-то еще нужно подправить где-то я так понимаю..

searchi добавил 24.10.2009 в 16:30

В общем просто нужно было отключить эти автоподдомены при этом запись * NS

осталась и файл .htaccess вроде стал работать как надо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий