我已经通过启用NameVirtualHost成功地设置了几个VirtualHosts。这是我的vhosts.conf的顶部
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mysite.local
...
</VirtualHost>问题是,当我访问http://localhost时,我得到默认的"It works!“。如果我转到http://127.0.0.1/,它将默认为http://mysite.local
我从Apache Docs中理解了为什么它默认使用mysite.local (与第一个VirtualHost匹配)。但我以前可以去http://localhost/phpmyadmin/。
我怎么才能把这个拿回来?我需要让我的第一个VirtualHost成为本地主机吗?这似乎是错的..。
在Mac OS X (10.6.6)上运行apache 2.2.15。
更新
如果我注释掉主机文件中的以下行,localhost和127.0.0.1都会转到同一个位置。我在访问日志中验证了它确实在使用::1。
::1 localhost
fe80::1%lo0 localhost所以我想这就解决了第一个问题,如果这样可以的话?但是如何让本地主机转到我的默认DocumentRoot呢?
发布于 2011-03-03 21:38:20
不,你不能把VirtualHosts和“经典”配置混在一起。您可以在另一个端口上侦听并定义另一个VirtualHost (例如*:8080),以“模仿”您之前的“本地主机”,转到您的通用DocumentRoot声明。
如下所示:
Listen 80 (already declared elsewhere)
Listen 8080
NameVirtualHost *:80
NameVirtualHost *:8080
<VirtualHost *:80>
ServerName mysite.local
...
</VirtualHost>
<VirtualHost *:8080>
ServerName localhost
DocumentRoot /same/as/the/classic/one/
...
</VirtualHost>您还可以声明一些别名/ phpmyadmin /,这将是全局的,因为我不建议使用别名,因为您的vhost中不能有另一个phpmyadmin文件夹。
当然,您可以定义一个phpmyadmin.local虚拟主机;-)
发布于 2012-05-29 17:44:55
我怎么才能把这个拿回来?我需要让我的第一个VirtualHost成为本地主机吗?这似乎是错误的……
我这样做了,所有的工作似乎都很好,不需要额外的端口来监听。
第一个VirtualHost块处理任何不指向我设置的两个vhost(第二个和第三个vhost块)之一的VirtualHost:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/"
ServerName localhost
ServerAlias localhost
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/imputation/dirmaster/http/"
ServerName imputation.loc
<Directory "/Applications/XAMPP/xamppfiles/htdocs/imputation/dirmaster/http/">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/documentatiebestand/"
ServerName documentatiebestand.loc
<Directory "/Applications/XAMPP/xamppfiles/htdocs/documentatiebestand/">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>https://stackoverflow.com/questions/5176947
复制相似问题