Интересный способ для тех, кому необходимо создавать множество субдоменов на одном домене. Естественно самый верный и правильный способ - это редактировать конфигурационный файл Apache для каждого субдомена. А если доменов много? Можно и устать…
Да и стоит ли нагружать файл, ведь можно сделать гораздо проще. Можно сделать настройку Apache так, что каждый каталог, созданный внутри корневой директории домена будет доступен как субдомен, а чтобы создать новый субдомен, достаточно будет только создать новый каталог.
В файле описания зоны (если у вас есть непосредстенный доступ к DNS) или в настройках, которые вам предоставляет регистратор домена, необходимо создайть новый субдомен с именем * (звездочка) и IP-адресом вашего веб-сервера, на котором будут создаваться все субдомены. (Стоит отметить, что эти “автоматические” субдомены будут иметь более низкий приоритет по отношению к обычным субдоменам , созданным по правилам. То есть, если создать субдомен с конкретным именем и указать его на другой IP-адрес, то посетители будут перенаправляться на этот другой IP-адрес.)
Замечание: Необходимо, что был подключен модуль mod_rewrite.
Добавьте в секцию VirtualHost вашего домена следующее:
<VirtualHost *:80> DocumentRoot /var/www/ваш_домен.com ServerName ваш_домен.com ... ServerAlias *.ваш_домен.com RewriteEngine On RewriteCond %{HTTP_HOST} !^www.ваш_домен.com>$ RewriteCond %{HTTP_HOST} ^((.*)\.)ваш_домен.com>$ RewriteRule ^/(.*) /%2/$1 </VirtualHost>Собственно все. Не забудьте перезагрузить Apache командой:
# apachectl restart
Принципе работы - все субдомены, кроме www, будут запрашиваться из подкаталогов. Используя эту конфигурацию, возможно использовать домены нескольких уровней вложенности (например, second.first.example.com). Если же каталог для запрошеного домена не существует, то будет возвращена стандартная ошибка 404 (Файл не найден).
Распечатать статью
6 Responses
SEO writer - Личный помощник в SEO! » Несколько способов получить бесплатные ссылки на свои зарубежные блоги
May 11th, 2008 at 14:42
1[...]Поваренная книга SEO рассписал про настройку автоматического создания субдоменов на Apache[...]
Сергей
June 12th, 2008 at 19:28
2Блин, почему только сейчас нашел вашу статью, писал курсач по части настройки DNS )
Bambino
June 12th, 2008 at 22:14
3Сергей, а так всегда бывает…
Лёлик
October 28th, 2009 at 23:50
4У меня практический вопрос, данное прописывание - работает. Но возникает одна сложность. Во всех поддоменах меняется корень и если для домена первого уровня example.com корень, например выглядит /home/example.com/
то для поддомена ru.example.com корень уже будет /home/example.com/ru/
А неудобство в том, что все картинки css и js файлы ищутся в соответствии с новым корнем.
Как прописать всем поддоменам единый корень?
Bambino
November 4th, 2009 at 11:06
5Что подразумевается под выражением меняется корень? Изменение значение переменной DOCUMENT_ROOT? А зачем делать субдомены, если они содержат, судя по всему один и тот же контент? Субдомены имеет смысл делать для логического разделения. Например, есть основной сайт, а есть форум, который можно поместить на отдельный субдомен. Если же действительно нужно, то нужно, чтобы скрипты учитывали изменение корневой директории сайта (наверняка они используются) или же попробовать переопределить переменную $_SERVER['DOCUMENT_ROOT'] в самом начале (лично не пробовал, но попробовать стоит.)
Skat
December 3rd, 2009 at 13:40
6Все верно, но иногда субдомены нужны для разных порталов, чтобы сделать вход на страницу пользователя по username.sitenname.com
RSS feed for comments on this post · TrackBack URI
Оставьте комментарий