Динамические домены 3-го уровня
3 повідомлення
#13 років тому
Здравствуйте, столкнулся с, наверно, знакомой для многих проблемой реализации динамических поддоменов 3-го уровня.Разрабатываю сайт, на котором вывод информации будет распределяться по городам. Соответственно для каждого города необходимо реализовать свой поддомен, примерно так получается: site.ru, city.site.ru, где city будет подставляться в зависимости от города.
Пытался воспользоваться модулем mod_rewrite, но понял что его тут не достаточно, т.к. еще необходимо настроить сам хост(или виртуальный хост, не знаю как правильно).
Сам довольно далек в настройке Апатча и его модулей.
Подскажите хоть в каком направлении копать.
263 повідомлення
#13 років тому
Вам надо сделать, примерно, следующее:1. В Ваш DNS прописать запись A, такую чтобы любой домен 3-го уровня разрешался на Ваш IP адрес. Точный формат записи я не помню, это можно посмотреть google, запросом навроде "named wildcard A record".
2. После этого в файле конфигурации Апач делаете виртуальный домен для Вашего сайта, так чтобы все поддомены 3-го уровня "попадали" в этот виртуальный домен:
<VirtualHost *:80>
ServerName посилання
...
/VirtualHost>
Имя хоста в ServerName должно совпадать с именем Вашего сайта. Желательно, чтобы у апача этот виртуальный домен был единственным доменом.
3. На входе в Ваш скрипт определяете к какому домену был направлен запрос (имя домена передается в какой-то переменной окружения) и действуете соответственно.
79 повідомлень
#13 років тому
В .htaccess пишем что-то вроде<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
</IfModule>
А определяем для какого сайта выводить контент из переменной $_SERVER
2989 повідомлень
#13 років тому
Если я правильно понял, надо все субдомены (домены) направить на один домен.<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} oldsubdomain\.domain\.ru$
RewriteRule ^(.*)$ посилання
</IfModule>
Только такой редирект поисковики сразу отловят. Лучше действовать через настройку хостинга. Тут уже писали, но не до конца. Надо указать всем доменам одну и ту же корневую папку.
<VirtualHost *:80>
ServerName посилання
DocumentRoot /www/folder
</VirtualHost>
<VirtualHost *:80>
ServerName посилання
DocumentRoot /www/folder
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain.domain1.ru
DocumentRoot /www/folder
</VirtualHost>
или через алиасы
<VirtualHost *:80>
ServerName посилання
ServerAlias domain.ru *.domain.ru
DocumentRoot /www/folder
</VirtualHost>
как вариант с явным указанием субдоменов
<VirtualHost *:80>
ServerName посилання
ServerAlias domain.ru sub1.domain.ru sub1 sub2.domain.ru sub2 sub3.domain.ru sub3
DocumentRoot /www/folder
</VirtualHost>
79 повідомлень
#13 років тому
Цитата ("Php"):В .htaccess пишем что-то вродеЦитата ("elosoft"):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
</IfModule>
через алиасы
<VirtualHost *:80>
ServerName посилання
ServerAlias domain.ru *.domain.ru
DocumentRoot /www/folder
</VirtualHost>