PHP « домен третьего уровня

Доброго времени суток.
Возникла такая проблема. Есть 3 разных сайта. Они должны лежать в одной папке на хостинге. Но все должно работать так, что бы при вызове доменов третьего уровня вызывался нужный сайт. Например:
Домен - domain .
Сайт 1 - site1.domain.ru
Сайт 2 - site2.domain.ru
Сайт 3 - site3.domain.ru
Не подскажите как это реализовать? буду благодарен.

1 ответов


Т.к. у вас веб-сервер апач, то вам нужно ознакомиться с Virtualhost Apache

В итоге должно быть примерно так:


<VirtualHost *:80>
  DocumentRoot /www/site1
  ServerName www.site1.domain.com

</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /www/site2
  ServerName www.site2.domain.com

</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /www/site3
  ServerName www.site3.domain.com

</VirtualHost>
 

По тегам понимаю, что вопрос скорее в php, да?
Т.е. как в ваших скриптах распознать сайт?
Схематично так:


switch ($_SERVER['SERVER_NAME'])
  {
  case 'site1.domain.ru':
    echo "site1.domain.ru";
    break;
  case 'site2.domain.ru':
    echo "site2.domain.ru";
    break;
  case 'site3.domain.ru':
    echo "site3.domain.ru";
    break;
default:
    echo "No site";
}
 
Ну, а в VirtualHost апача:

<VirtualHost *:80>
  DocumentRoot /www/
  ServerName site1.domain.ru
  ServerAlias site2.domain.ru, site2.domain.ru
</VirtualHost>