Почему мои vhosts совпадают без доменного имени?
Я настроил мой httpd-vhosts.conf
файл следующим образом:
<VirtualHost seg.localhost:81>
ServerAdmin my@email.com
DocumentRoot "D:\path\to\public_html"
ServerName http://seg.localhost
ServerAlias http://seg.localhost
ErrorLog "logs/seg.log"
CustomLog "logs/seg" common
<directory "D:\path\to\public_html">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from all
</directory>
</VirtualHost>
Но когда я иду в http://localhost:81/
в моем браузере он все еще попадает в эту папку. Почему поддомен игнорируется?
1 ответ
Если вы используете vhosts на основе имен, самый верхний vhost (первый экземпляр <VirtualHost>
block) считается vhost по умолчанию, что означает, что если запрос сделан для хоста, который не соответствует ни одному из заданных <VirtualHost>
Это самый верхний из них.
Вы можете обойти это, добавив новый топ-хост, который просто отрицает все:
<VirtualHost seg.localhost:81>
ServerName _default_
DocumentRoot "D:\path\to\public_html"
<Directory "D:\path\to\public_html">
Order Allow,Deny
Deny from all
</Directory>
</VirtualHost>
Или перенаправьте его на seg.localhost, или как хотите.