Субдомены

Все субдомены заворачиваются для обработки в корневую папку главного sub.onore.kiev.ua и onore.kiev.ua выводятся одним и тем же index.php — разница “только” в переменной $_SERVER[’HTTP_HOST’];
ServerAlias *.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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Security Code:

Subscribe without commenting