Apache xampp虚拟主机-始终加载htdocs

Apache xampp虚拟主机-始终加载htdocs,apache,xampp,localhost,vhosts,Apache,Xampp,Localhost,Vhosts,我正在尝试在本地主机(XAMPP)上创建虚拟主机。尝试了各种组合,但我总是加载htdocs而不是特定的文件夹 以下是主机文件: 127.0.0.1 localhost ::1 localhost 127.0.0.1 devsnappy 这里是httpd vhosts.conf: NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot E:/xampp/htdocs/snappy/public ServerName d

我正在尝试在本地主机(XAMPP)上创建虚拟主机。尝试了各种组合,但我总是加载htdocs而不是特定的文件夹

以下是
主机
文件:

127.0.0.1 localhost
::1 localhost
127.0.0.1 devsnappy
这里是httpd vhosts.conf:

NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot E:/xampp/htdocs/snappy/public
    ServerName devsnappy
    <Directory "E:/xampp/htdocs/snappy/public">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
NameVirtualHost*:80
DocumentRoot E:/xampp/htdocs/snappy/public
服务器名devsnapy
选项索引如下SYMLINKS包括ExecCGI
允许超越所有
命令允许,拒绝
通融
有什么建议吗?

这里有一个向xampp添加vhost的方法

您似乎错过了主机文件中的某些内容

例如,假设您有另一个ClientB网站。在hosts文件中添加127.0.0.1 clientB.local>,C:\xampp\apache\conf\extra\httpd-vhosts.conf如下所示:

NameVirtualHost*
DocumentRoot“C:\xampp\htdocs”
服务器名本地主机
DocumentRoot“C:\Documents and Settings\Me\My Documents\clientA\website”
ServerName clientA.local
命令允许,拒绝
通融
DocumentRoot“C:\Documents and Settings\Me\My Documents\clientB\website”
ServerName clientB.local
命令允许,拒绝
通融

而且重新启动httpd

哦,让它在Apache 2.4.9中工作对我来说真的很痛苦。我找到了很多教程,但我无法让它工作

我的解决方案是针对Apache2.4及以上版本的,我已经用Apache2.4.9进行了测试

您需要编辑两个文件。请先备份这两个文件,然后再进行更改。如果写入错误,则即使您卸载xampp,然后再次安装xampp,本地主机也无法工作

第1步:

编辑此文件

C:\Windows\System32\drivers\etc\hosts

使用记事本中的“以管理员身份运行”打开此文件(非常重要)

开始菜单>记事本>右键单击>以管理员身份运行>打开文件

将这两行添加到此文件末尾

127.0.0.1       testsite.dev
127.0.0.1       www.testsite.dev
NameVirtualHost *:80
<VirtualHost *:80> 
    DocumentRoot "E:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin admin@.testsite.dev
    DocumentRoot "E:/xampp/htdocs/htc"
    ServerName testsite.dev
    ServerAlias www.testsite.dev
</VirtualHost>
无论您转到testsite.dev还是www.testsite.dev,它现在都将尝试从本地计算机而不是从web访问

第二步:

E:\xampp\apache\conf\extra\httpd-vhosts.conf

您可以正常编辑此文件,无需以“以管理员身份运行”的身份运行此文件 在此文件末尾添加以下行

127.0.0.1       testsite.dev
127.0.0.1       www.testsite.dev
NameVirtualHost *:80
<VirtualHost *:80> 
    DocumentRoot "E:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin admin@.testsite.dev
    DocumentRoot "E:/xampp/htdocs/htc"
    ServerName testsite.dev
    ServerAlias www.testsite.dev
</VirtualHost>
NameVirtualHost*:80
DocumentRoot“E:/xampp/htdocs”
服务器名本地主机
服务器管理员admin@.testsite.dev
DocumentRoot“E:/xampp/htdocs/htc”
ServerName testsite.dev
ServerAlias www.testsite.dev
我在E-drive中设置了我的xampp,所以当你从这里复制时,请确保根据你的xampp安装进行更改。最后一部分没什么意思。我指的是这种药剂

<VirtualHost *:80>
    ServerAdmin admin@.testsite.dev
    DocumentRoot "E:/xampp/htdocs/htc"
    ServerName testsite.dev
    ServerAlias www.testsite.dev
</VirtualHost>

服务器管理员admin@.testsite.dev
DocumentRoot“E:/xampp/htdocs/htc”
ServerName testsite.dev
ServerAlias www.testsite.dev
在哪里可以找到此代码?在internet上,您可以在许多地方找到它,但可能不适用于您,因为该代码将与您的Apache版本有所不同。那么解决方案是什么呢

在文件的最后,你会看到已经有一些注释行向你展示了如何设置虚拟主机的演示,只需复制这些行并进行必要的更改,就可以了。为了更好地理解,我附上了一个屏幕截图


对于任何一个读到这篇文章却没有任何解决方案帮助你的人来说,这就是帮助我的原因

只需在httpd.conf中取消注释该Include行:

# Virtual hosts
Include etc/extra/httpd-vhosts.conf
这样,它将使您在etc/extra/httpd vhosts.conf中所做的更改可用

以后别忘了重新启动Apache服务器

  • 不要使用.DEV,该注册表现在归谷歌所有,它会强制你的浏览器使用SSL(443)。Try.app或.lan

  • 确保浏览器未加载HTTPS(端口443),而Apache仅在80端口上获得连接,如


  • 您正确地重新启动了httpd吗?我认为这与
    主机
    文件无关。更好的猜测是,他只是在修改
    httdp vhosts.conf
    后忘记重新启动apache服务器。我复制粘贴了指南中的示例…更改了路径…重新启动并工作了…然后更改回我的自定义vhost name…重新启动并工作了…我不知道pb是什么(这是我做的第一个指南)但是如果有人和我有相同的pb,那么按照这个答案来回答可能会有帮助…谢谢大家+1-对不起,我的错误我以为你在说
    /etc/hosts
    文件。我也为我工作过。+1用于修复:)我很抱歉,但那个指南链接断了,你能更新吗?救了我一天。谢谢哦,伙计,刚刚浪费了我宝贵生命中的一个小时使用httpd-vhosts.conf文件,最终发现它在httpd.conf中被注释了,感谢您指出这一点!