首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于本地主机,NameVirtualHost导致404

对于本地主机,NameVirtualHost导致404
EN

Stack Overflow用户
提问于 2011-03-03 13:16:19
回答 2查看 4.2K关注 0票数 2

我已经通过启用NameVirtualHost成功地设置了几个VirtualHosts。这是我的vhosts.conf的顶部

代码语言:javascript
复制
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。

代码语言:javascript
复制
::1             localhost
fe80::1%lo0     localhost

所以我想这就解决了第一个问题,如果这样可以的话?但是如何让本地主机转到我的默认DocumentRoot呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-03 21:38:20

不,你不能把VirtualHosts和“经典”配置混在一起。您可以在另一个端口上侦听并定义另一个VirtualHost (例如*:8080),以“模仿”您之前的“本地主机”,转到您的通用DocumentRoot声明。

如下所示:

代码语言:javascript
复制
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虚拟主机;-)

票数 2
EN

Stack Overflow用户

发布于 2012-05-29 17:44:55

我怎么才能把这个拿回来?我需要让我的第一个VirtualHost成为本地主机吗?这似乎是错误的……

我这样做了,所有的工作似乎都很好,不需要额外的端口来监听。

第一个VirtualHost块处理任何不指向我设置的两个vhost(第二个和第三个vhost块)之一的VirtualHost:

代码语言:javascript
复制
<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>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5176947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档