4

私の Windows 7 ではすべてが完璧に機能しています。

問題は、 domain1.comを VirtualHost として追加すると、localhost の DocumentRoot が VirtualHost の DocumentRoot に変更されることです。

例: http://localhostにアクセスすると、domain1.com に指定した DocumentRoot が開かれ、httpd.conf に指定されたものではありません。

私の 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>

解決策の 1 つは、ServerName を 127.0.0.1 または localhost として VirtualHost を追加することですが、それは避けています。

httpd.conf に指定されている localhost の DocumentRoot をデフォルトにすることはできますか?

追加情報が必要な場合はお知らせください。

ありがとう、ジガー。

4

1 に答える 1

9

https://httpd.apache.org/docs/2.2/vhosts/name-based.htmlに記載されているとおり

「既存の Web サーバーに仮想ホストを追加する場合は<VirtualHost>、既存のホストのブロックも作成する必要があります。この仮想ホストServerNameに含まれる およびは、グローバルおよび とDocumentRoot同じである必要があります。構成ファイルの最初にこの仮想ホストをリストします。デフォルトのホストとして機能します。」ServerNameDocumentRoot

于 2012-12-12T05:58:28.290 に答える