Mac上的XAMPP虚拟主机通配符子域



我想设置我的虚拟主机,这样我的项目就不会在htdocs文件夹中,我想使用子域来访问它们。因此,例如;http://localhost/myproject"其将位于"/例如"examplep/htdocs/myproject";,我宁愿去";http://myproject.sites.local"其将位于"/Users/myname/Projects/myproject";。

我知道我必须在";等等";文件夹,然后取消对包括虚拟主机的行的注释,完成了这一操作。然后我去了"/etc/主机";要添加的文件";127.0.0.1站点;之后,我在httpd-vhosts.conf文件中有了这段代码:

<Directory "/Users/marioplantosar/Projects">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Virtualhost *:80>
VirtualDocumentRoot "/Users/marioplantosar/Projects"
UseCanonicalName Off
</Virtualhost>
<Virtualhost *:80>
VirtualDocumentRoot "/Users/marioplantosar/Projects/%1"
ServerName sites.local
ServerAlias *.sites.local
UseCanonicalName Off
</Virtualhost>

我想第一部分是有效的,因为如果我访问";http://sites.local"它打开"项目"文件夹根目录(它只是列出子文件夹,因为"Projects"文件夹中没有索引文件。但另一部分不起作用,它只是抛出"ERR_NAME_not_RESOLVED"错误。所以我在ServerAlias中使用了通配符"*",这样它就可以捕获sites.local的每个子域,我使用"%1"打开"Projects;文件夹,但它就是不起作用。最奇怪的是,它工作了几个月,直到昨天,我不知道发生了什么,它突然停止了工作。

我解决了这个问题。我在问题中写的所有内容都配置正确,但由于一年多前我就在做这一切,我完全忘记了dnsmasq部分,不知怎么搞砸了"主机";文件不支持通配符,所以你必须使用像dnsmasq这样的工具,它会自动为我的"中的每个文件夹进行dns屏蔽;项目;文件夹

对于像我这样遇到类似情况的人,您正确地配置了httpd-vhosts.conf、httpd.conf和hosts文件中的所有内容,但它不起作用。您应该按照本教程设置dnsmasq:https://passingcuriosity.com/2013/dnsmasq-dev-osx/

最新更新