26

我在创建虚拟主机时遇到问题。我正在使用 Windows 7 x64 专业版。在文件中C:\Windows\System32\drivers\etc\hosts我只有这几行:

127.0.0.1   myhost
127.0.0.1   www.myhost

在文件中C:\xampp\apache\conf\extra\httpd-vhosts.conf我有这个:

NameVirtualHost *:80
<VirtualHost *:80> 
    DocumentRoot "C:/xampp/htdocs/"
    ServerName localhost
    ServerAlias www.localhost
</VirtualHost>

<VirtualHost *:80> 
    DocumentRoot "C:/Users/Me/Dropbox/Project/public"
    ServerName myhost
    ServerAlias www.myhost
    <Directory "C:/Users/Me/Dropbox/Project/public">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
   </Directory>
</VirtualHost>

当然,在这些文件中添加这些行之后,我已经重新启动了我的 Apache 服务器。不幸的是,在我的浏览器中键入myhostwww.myhost将我重定向到myhost/xampp.

我已经搜索过,我在 google 和 stackoverflow 上找到了如何使用 xampp 配置虚拟主机的描述,但我怎么能认识到我做的一切都很好。我知道我的问题并不新鲜,但我没有找到适合我的解决方案。

我也认识到localhost在我的浏览器中输入也会重定向我localhost/xampp。我不知道这些问题是否与我的情况有关。

4

5 回答 5

51

我有同样的问题。您的第一个请求是重定向到 htdocs 根目录。如果您查看 htdocs 目录中的 index.php,您会看到非常简短的代码,它接收传入请求并将其重定向到 xampp 目录。

我通过摆弄 httpd-vhosts.conf 文件来修复它。在您的情况下,请尝试进行以下编辑:

NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1> 
    DocumentRoot "C:\xampp\htdocs\
    ServerName localhost
</VirtualHost>

<VirtualHost www.myhost> 
    DocumentRoot "C:\Users\Me\Dropbox\Project\public"
    ServerName www.myhost
    ServerAlias www.myhost
    <Directory "C:\Users\Me\Dropbox\Project\public">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
   </Directory>
</VirtualHost>
于 2012-06-06T23:13:21.070 回答
3

我有一个类似的问题,发现我必须转到我的 Apache24 主 httpd.conf 文件并取消注释我以前从未使用过的第 501 行“包括 conf/extra/httpd-vhost.conf”,它仍然是#'ed出去。希望这对在这里找不到其他答案的人有所帮助。我的 Apache24 现在可以看到我的虚拟主机文件了。

于 2017-10-24T23:39:55.973 回答
2

您需要启用基于名称的虚拟主机。

在 C:\xampp\apache\conf\extra\httpd-vhosts 中的文件顶部附近

取消注释#NameVirtualHost *:80

即来自:

#
# Use name-based virtual hosting.
#
#NameVirtualHost *:80

到:

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

(注意最后一行现在没有注释)。

对我来说就像一个魅力。:)

于 2012-11-08T01:33:55.543 回答
1

试试这个

[文件:C:\xampp\apache\conf\extra\httpd-vhosts.conf]

<VirtualHost basic.test:80>
    DocumentRoot "C:/xampp/htdocs/basic/public/"
    ServerName basic.test
</VirtualHost>

[文件:C:\Windows\System32\drivers\etc\hosts](以管理员身份打开)

127.0.0.1  basic.test
127.0.0.1  localhost
于 2020-09-25T20:05:52.593 回答
0

对我来说,将这个替换<VirtualHost *:80>为这个<VirtualHost 127.0.0.1:80>工作正常。

于 2020-09-24T07:17:50.530 回答