Статьи

Статьи

Категории

Устройство
Обучающее руководство
Темы
Оформление и компоненты дизайна
Модули
Использование и изготовление модулей
Блоки
Использование и изготовление блоков
Документация
Описание функций и модулей
Информация
Полезная информация для администратора

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

Автоматические поддомены на 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&#092;.)&#063;domen&#092;.ru$ [NC]<br /> RewriteCond %{HTTP_HOST}---%{REQUEST_URI} ^([^&#092;.]+)&#092;.domen&#092;.ru---/([^/]+)&#063; [NC]<br /> RewriteCond %1---%2 !^(.*)---&#092;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} ^(.+)&#092;.domen&#092;.ru$ [NC]<br /> RewriteCond %{HTTP_HOST} !^www&#092;.domen&#092;.ru$ [NC]<br /> RewriteCond %{REQUEST_URI} !^/sub<br /> RewriteRule ^(.*) %{HTTP_HOST}$1<br /> RewriteRule ^(.*)&#092;.domen&#092;.ru(.*) /sub/$1$2<br /> RewriteRule ^sub&#092;.(.*) /sub/$1


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


70
Назад

Комментарии

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 в действии?

Идеи и предложения
Обратная связь