Иногда надо создавать автоматически поддомен в какой-либо зоне. Например, для хостинга домашних страничек пользователей. Вот как это делается:
1. Нам надо создать запись для всех поддоменов в домене.
В зону мы вносим новый домен «*», ссылающийся на необходимый IP адрес сервера.
2. Настраиваем Apache.
Создаем вирутальный хост с примерно такими параметрами:
<VirtualHost *:80>
DocumentRoot /var/www/example.com
ServerName example.com
…ServerAlias *.example.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^((.*)\.)example.com$
RewriteRule ^/(.*) /%2/$1</VirtualHost>
Теперь, чтоб у нас работал сайт, создаем каталог /var/www/example.com/www и туда заливаем содержимое сайта www.example.com. По аналогии делаем для остальных поддоменов.
Собственно все.

Рубрики
Теги: 
не получается, идет перенаправление на хостинг
SilverGost, спасибо. Я написал такой хтакс
RewriteCond %{HTTP_HOST} !^www.blabla.ru$ [NC]
RewriteCond %{HTTP_HOST} ^(([a-z0-9]+)\.)blabla.ru$ [NC]
RewriteRule ^(.*)$ [L,QSA]
Как сделать так чтобы перенаправленный урл скрывался в строке адреса, а на его месте все так же оставался username.blabla.ru
У меня практический вопрос, данное прописывание – работает. Но возникает одна сложность. Во всех поддоменах меняется корень и если для домена первого уровня example.com корень, например выглядит /home/example.com/
то для поддомена ru.example.com корень уже будет /home/example.com/ru/
А неудобство в том, что все картинки css и js файлы ищутся в соответствии с новым корнем.
Как прописать всем поддоменам единый корень?
P.S. RewriteBase / не принимает пишет при попытке перезапуска апача:
«RewriteBase: only valid in per-directory config files»
Пропишите в HTML код вашего сайта внутри раздела HEAD тэг BASE с указанием правильного пути.
эээ да это бесусловно рабтает что почему тема называется создание через .htaccess усли все делается в вирт хосте….
Подскажите пожалуйста, как автоматически сообщать DNS-серверу о том, что были созданы новые поддомены?
Например, структура поддоменов:
site.ru/www
site.ru/rnd
site.ru/rnd2
site.ru/rnd3
Где rnd, rnd2, rnd3 – поддомены, а www – это site.ru
Хочу сделать так, чтобы при переходе на поддомен (rnd, rnd2, rnd3) адрес в стоке не менялся, а скрипты работали из папки www.
Например, перехожу на rnd.site.ru, в адресной строке остается тот же адрес, но начинает работать скрипт site.ru/www/index.php
Если бы кто подсказал как сделать был бы очень благодарен!
.htaccess + mod_rewrite = то, что нужно. ;)
Я не особо силен в .htaccess + mod_rewrite.Пробовал так:
RewriteCond %{HTTP_HOST} ^.*msk\.site\.info [NC]
RewriteRule ^(.*) [P,L]
Локальный сервер пишет, что Вероятнее всего, сервер пытается найти файл Z:/home/site.info/msk/, которого не существует (путь такой есть).
Dmitriy Lyalyuev, не подскажете как конкретно это сделать? :)
Все довольно просто…