Все субдомены заворачиваются для обработки в корневую папку главного sub.www.onore.kiev.ua и www.onore.kiev.ua выводятся одним и тем же index.php — разница “только” в переменной $_SERVER[’HTTP_HOST’];
ServerAlias *.www.onore.kiev.ua
...
Темы по теме:
- http://server-tuning.info/apache/auto-subdomains.html
- http://xpoint.ru/forums/internet/webservers/apache/thread/30760.xhtml
Сложные методы:
DocumentRoot /var/www/example.com
ServerName example.com
...
ServerAlias *.example.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com$
RewriteCond %{HTTP_HOST} ^((.*)\.)example.com$
RewriteRule ^/(.*) /%2/$1
Методы с использованием .htaccess
RewriteEngine on
RewriteOptions MaxRedirects=1
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)\.domain.com
RewriteCond %{REQUEST_URI} !^/.+/
RewriteRule (^.*$) /home/domain.com/www/%2/$1 [L]
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule (^.*$) http://www.domain.com/$1
RewriteEngine On
#Запрет обработки корневых запросов
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule .* - [L]
#Запрет обработки форвардных запросов
RewriteCond %{REQUEST_URI} ^/?.+\.domain\.com [NC]
RewriteRule .* - [L]
#Форвард запроса в саб-фолдер
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com [NC]
RewriteRule (.*) /%1.domain.com/$1 [L]
C Searchengines
Теперь любая папка например 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