配置虚拟主机和localhost重定向到xampp文件夹

时间:2012-04-22 22:05:59

标签: apache xampp localhost virtualhost

我在创建虚拟主机时遇到问题。我使用的是Windows 7 x64 Professional。在文件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。我不知道这些问题是否与我的情况有关。

5 个答案:

答案 0 :(得分:49)

我有同样的问题。您的第一个请求是重定向到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>

答案 1 :(得分:2)

我有一个类似的问题,发现我必须转到我的Apache24主httpd.conf文件并取消注释第501行和#34;包括conf / extra / httpd-vhost.conf&#34; 我之前从未使用过它,它仍然被淘汰了。希望这有助于任何人在这里找不到其他答案。我的Apache24现在可以看到我的vhost文件。

答案 2 :(得分:1)

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

在C:\ xampp \ apache \ conf \ extra \ httpd-vhosts

中靠近文件顶部

取消注释 #NameVirtualHost *:80

即。从:

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

要:

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

(注意现在最后一行是未注释的。)

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

答案 3 :(得分: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

答案 4 :(得分:0)

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