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 сопоставил одно и то же!
Есть ли простой способ сделать то, что я собираюсь делать? Спасибо заранее.
Ответы
Ответ 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