配置虚拟主机和本地主机重定向到XAMPP文件夹

27

我在创建虚拟主机时遇到了问题。我使用的是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
我已经搜索过了,通过谷歌和stackoverflow,找到了描述如何使用xampp配置虚拟主机的方法,但我该如何知道我做得没问题。 我知道我的问题并不新鲜,但我没有找到适合我的有效解决方案。
我还发现,在浏览器中键入localhost也会将我重定向到localhost/xampp。 我不知道这些问题在我的情况下是否相关。

请访问以下链接以获取可行的解决方案 使用localhost和virtualHost进行工作 - Raj
5个回答

52

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

对于我当前的测试 XAMPP(1.8.1),配置文件 httpd-vhosts.conf 位于 XAMPP_INSTALLATION\apache\conf\extra - jave.web

3

我曾遇到类似的问题,发现需要打开我的Apache24主要的httpd.conf文件,并取消注释大约在第501行附近的"Include conf/extra/httpd-vhost.conf"。我以前从未使用过那个,并且它仍被注释掉了。希望这可以帮助任何没找到其他答案的人。现在我的Apache24可以看到我的虚拟主机文件了。


2

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

在文件 C:\xampp\apache\conf\extra\httpd-vhosts 的顶部附近,取消注释#NameVirtualHost *:80

即:

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

致:

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

注意现在最后一行已经取消注释。

对我来说非常有效。:)


我怀疑这不是OP的问题,因为在他的第二个代码块中,这是第一行(未注释的)!;-) 但无论如何,欢迎来到SO! :-) - Don Question

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

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接