Добавление Apache VirtualHost, DocumentRoot изменений localhost в DocumentRoot VirtualHost

В моей Windows 7 все работает отлично.

Проблема в том, что когда я добавляю domain1.com в качестве VirtualHost, DocumentRoot localhost меняется на DocumentRoot VirtualHost.

Например: когда я посещаю http://localhost, открывается DocumentRoot, который я указал для domain1.com, а не тот, который указан в httpd. конф.

Мой файл httpd-vhosts.conf:

NameVirtualHost 127.0.0.1:80
NameVirtualHost domain1.com:80
<VirtualHost domain1.com:80>
<Directory "e:/program files/apache/htdocs/domain1.com">
    Options FollowSymLinks Indexes
    AllowOverride All
    Order deny,allow
    allow from All
</Directory>
ServerName domain1.com
ServerAlias domain1.com
ScriptAlias /cgi-bin/ "e:/program files/apache/htdocs/domain1.com/cgi-bin/"
DocumentRoot "e:/program files/apache/htdocs/domain1.com"
ErrorLog "E:/Program Files/apache/logs/domain1.com.err"
CustomLog "E:/Program Files/apache/logs/domain1.com.log" combined
</VirtualHost>

Файл "Мои хосты":

127.0.0.1   domain1.com

Мой файл httpd.conf:

DocumentRoot "e:/program files/apache/htdocs"
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
<Directory "e:/program files/apache/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

Я знаю, что одним из решений является добавление VirtualHost с ServerName как 127.0.0.1 или localhost, но я избегаю этого.

Могу ли я сделать локальный DocumentRoot, указанный в httpd.conf, по умолчанию?

Пожалуйста, дайте мне знать, если вам понадобится дополнительная информация.

Спасибо, Джигар.


person Jigar D    schedule 05.03.2012    source источник


Ответы (1)


как указано в https://httpd.apache.org/docs/2.2/vhosts/name-based.html

"Если вы добавляете виртуальные хосты к существующему веб-серверу, вы также должны создать блок <VirtualHost> для существующего хоста. ServerName и DocumentRoot, включенные в этот виртуальный хост, должны быть такими же, как глобальные ServerName и DocumentRoot. Сначала укажите этот виртуальный хост в файле конфигурации, чтобы он действовал как хост по умолчанию ".

person Herokiller    schedule 12.12.2012
comment
DocumentRoot, включенный в этот виртуальный хост, должен быть таким же, как глобальный DocumentRoot. Это неправда. Все зависит от вашей конфигурации. Если вы установите, например, Options Indexes FollowSymlinks, вы можете установить любой каталог внутри глобального DocumentRoot как DocumentRoot виртуального хоста. - person Atralb; 21.01.2021