Чтение RSS каналов

Форум

Открыть Ответить

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

3

3
1
13.12.2008 13:16:32

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

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

Настроить зону в 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


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



Объясните уже наконец как это делать и самое главное где...

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

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

Третий пункт понятен но в какой папке ето все менять объясните пожалуйста
2
13.12.2008 16:23:37
По первому пункту: это делается в панели управления доменом, там где вы меняете ns сервера когда привязываете к хостингу, это автоматический метод. Там же должна быть возможность править в ручную зоны, вот там и меняете.

По второму пункту: если у вас VPS или сервер у вас есть возможность править конфиг apache. Вот там и допишите.

По третьему пункту: тут все должно быть понятно так как в корне директории где располагается сайт должен быть файл .htaccess в него и допишите.
3.18

3.18
3
13.12.2008 20:03:29
Не эффективный с точки зрения использования ресурсов. Метод
для 100 поддоменов файл htaccess захлебнется!

И будет задержка около 10 секунд при запросе в браузере
3.64

3.64
4
14.12.2008 09:40:55
Пасиба всем я пашел к провайдеру уж оченяма охота заценить поддомены ЫЫЫ ))
Открыть Ответить
slaedсделатьdomenпонятноподдоменыhostrewriteruleобъяснитеrewritecondпунктподдоменнастроитьчтобыhttpбудет
Хотите опробовать SLAED CMS в действии?

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

  • D-49179, Deutschland
    Ostercappeln, Im Siek 6
  • +49 176 61966679

  • https://slaed.net
Идеи и предложения
Обратная связь