Автоматические поддомены в Apache?

Скажу сразу, что это не повтор т. к. в похожих вопросах я не нашел правильного ответа.

У меня есть папка /var/www/mysite.net.ua/www/. В ней лежат файлы основного сайта, который открывается по адресу mysite.net.ua

В папке /var/www/mysite.net.ua есть папки /vasya, /kolya, /petya, т.е.:

/var/www/mysite.net.ua/vasya
/var/www/mysite.net.ua/kolya
/var/www/mysite.net.ua/petya

И таких папок может быть много. Необходимо сделать, что бы они открывались по своим адресам соответственно:

vasya.mysite.net.ua
kolya.mysite.net.ua
petya.mysite.net.ua

Я нашел вот такое решение:

в файле /etc/apache2/sites-available/mysite.net.ua.conf в раздел VirtualHost прописываю:
Define root_domain  mysite.net.ua
     Define root_path    /var/www/mysite.net.ua
     
     DocumentRoot  ${root_path}
     ServerName    ${root_domain}

     ServerAlias *.mysite.net.ua
     RewriteEngine On
     RewriteCond %{HTTP_HOST} !^www.mysite.net.ua$
     RewriteCond %{HTTP_HOST} ^((.*)\.)mysite.net.ua$
     RewriteRule ^/(.*) /%2/$1

В итоге любой субдомен, например vasya.mysite.net.ua отлично откроется, но главный сайт по адресу mysite.net.ua не перебросит в папку /var/www/mysite.net.ua/www/, а перебрасывает в корень главной папки сайта - /var/www/mysite.net.ua. Если в нее поместить index.php, то он откроется. Но мне это не подходит.

Думаю над тем, что нужно или правильно написать правило или извращаться, путем написания правила в файле /var/www/mysite.net.ua/.htaccess

Подскажите пожалуйста решение этой проблемы.
  • Вопрос задан
  • 479 просмотров
Решения вопроса 1
@dodo512
<VirtualHost *:80>
    ServerName mysite.net.ua
    ServerAlias www.mysite.net.ua

    DocumentRoot /var/www/mysite.net.ua/www
</VirtualHost>


<VirtualHost *:80>
    ServerName mysite.net.ua
    ServerAlias *.mysite.net.ua

    UseCanonicalName    Off
    VirtualDocumentRoot /var/www/mysite.net.ua/%-4
</VirtualHost>

И подлючить mod_vhost_alias
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы