Статьи » Информация » Автоматические поддомены на VPS, Dedicated

Автоматические поддомены на VPS, Dedicated

Наболевший вопрос который уже ни раз поднимался и еще будет подниматься не только на нашем форуме но и в интернете. Часто на серьезных интернет проектах возникает необходимость создания нескольких сотен поддоменов. Создание их вручную займет не мало времени. Но есть способ сделать все намного проще.

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

• Настроить зону в named-е
• Настроить вхост в apach-е
• Сделать правило через mod_rewrite1. Первым делом нам нужно добавить “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} !^$<br /> RewriteCond %{HTTP_HOST} !^(www\.)&#063;domen\.ru$ [NC]<br /> RewriteCond %{HTTP_HOST}---%{REQUEST_URI} ^([^\.]+)\.domen\.ru---/([^/]+)&#063; [NC]<br /> RewriteCond %1---%2 !^(.*)---\1$ [NC]<br /> RewriteCond %{DOCUMENT_ROOT}/%1/ -d<br /> RewriteRule ^(.*)&#063;$ %1/$1 [QSA,PT]


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

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


Практически все панели управления позволяют сделать подобные вещи через внутренние интерфейсы, так что проблем быть не должно.


70
Назад

Категории


Общее количество: 59 страниц в 8 категориях

Комментарии

brig-reklama
Статус
Гость
brig-reklama
12.03.2010 19:32:28

НЕ плохое решение .. определило мои поиски

mihmih
Статус
Гость
mihmih
10.08.2009 10:05:02

Да, я тоже давно искал.

astudio
Статус
Гость
astudio
14.06.2009 00:31:26

Спасибо давно искал это решение...

Apostali
Статус
Гость
Apostali
26.11.2008 09:49:18

тут назреваю вопрос у нуба в этом деле где и в каких папках все это настраиваеться ??
Настроить зону в named-е
Настроить вхост в apach-е

Вроде как с остальным понятно но вот эти 2 пункта я не как не пойму где это настраивать

Гость
Статус
Пользователь удалён
Гость
10.08.2008 03:09:25

Спасибо большое...

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

Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь