Подтвердить что ты не робот

Apache отображает один поддомен в папку

В моем /var/www у меня есть несколько сайтов (товар, badsite, uglysite). Прямо сейчас к ним обращаются mydomain.com/goodsite и т.д.

Я хочу, чтобы один сайт, в частности, uglysite, получал доступ к uglysite.mydomain.com - остальные остаются такими, какими они есть.

Я пробовал всевозможные способы возиться с the.htaccess(в /var/www). Примечание. У меня включен режим mod-rewrite и включен mod vhost-alias.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^uglysite\.mydomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/uglysite/
RewriteRule ^(.*)$ /uglysite/$1 [L]

Что происходит, так это то, что mydomain.com и uglysite.mydomain.com всегда сопоставляются с тем же самым (т.е. индексом /var/www). Я попытался добавить новый виртуальный хост и был удивлен, обнаружив, что uglysite.mydomain.com правильно настроен, но затем mydomain.com также отображался непосредственно на uglysite.

<Virtualhost uglysite.mydomain.com:80>
       ServerName uglysite.mydomain.com
       ServerAdmin [email protected]
       DocumentRoot "/var/www/"
       AccessFileName .htaccess
       <Directory "/var/www/uglysite">
               Order allow,deny
               Allow from All
               AllowOverride All
       </Directory>
</VirtualHost>

Вышеописанное было добавлено к файлу с файлами, включенным по умолчанию /000. Это заставило uglysite.mydomain.com работать правильно, но тогда mydomain.com сопоставил одно и то же!

Есть ли простой способ сделать то, что я собираюсь делать? Спасибо заранее.

4b9b3361

Ответ 1

Вы должны сделать uglysite во второй файл вместо изменения 000-default

Итак, возьмите копию файла 000-default, измените поддомен, как вы это сделали, и измените каталог на /path/to/site

000 по умолчанию:

<Virtualhost *:80>
       ServerName mydomain.com
       ServerAdmin [email protected]
       ServerAlias mydomain.com
       DocumentRoot "/var/www/goodsite"
       AccessFileName .htaccess
       <Directory "/var/www/goodiste">
               Order allow,deny
               Allow from All
               AllowOverride All
       </Directory>
</VirtualHost>

uglysite:

<Virtualhost *:80>
       ServerName uglysite.mydomain.com
       ServerAlias uglysite.mydomain.com
       ServerAdmin [email protected]
       DocumentRoot "/var/www/uglysite"
       AccessFileName .htaccess
       <Directory "/var/www/uglysite">
               Order allow,deny
               Allow from All
               AllowOverride All
       </Directory>
</VirtualHost>

Также обратите внимание, что в приведенных выше примерах я изменил DocumentRoot, чтобы указать на каталог, который вы хотите использовать из

EDIT: virtualhosts установлен в *: 80, так как ваши сайты указывают на ваш собственный ip anyway