我想要设置我的本地开发机器,以便任何对*.local的请求都被重定向到localhost。我的想法是,当我开发多个站点时,我可以只向Apache添加名为site1.local、site2.local等的vhost,并将它们都解析为localhost,而Apache则相应地为不同的站点提供服务。
我使用的是Windows XP。
我试着添加
127.0.0.1 *.local添加到我的c:\windows\system32\drivers\etc\hosts文件,也尝试了:
127.0.0.1 .local这两种方法似乎都不管用。
我知道我可以在不同的端口号上设置它们,但这是一种痛苦,因为很难记住哪个端口是哪个端口。
我不想设置本地DNS服务器或任何硬的东西,有什么建议吗?
发布于 2012-03-14 12:17:27
丙烯酸DNS代理(免费,开源)可以做到这一点。它使用自己的主机文件创建一个代理DNS服务器(在您自己的计算机上)。hosts文件接受通配符。
从官方网站下载
http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=Home
配置Acrylic代理
要配置Acrylic代理,请从上面的链接安装它,然后转到:
在文件末尾添加以下行:
127.0.0.1 *.localhost
127.0.0.1 *.local
127.0.0.1 *.lc重启Acrylic代理服务:
你还需要在你的网络接口设置中调整你的设置:
DNS设置为“使用以下服务器地址”:
Preferred DNS Server: 127.0.0.1如果您随后将此答案与jeremyasnyder的答案(使用VirtualDocumentRoot__)相结合,则可以通过简单地创建一个目录来自动设置域/虚拟主机。
发布于 2008-11-07 13:42:16
要回答您的问题,您不能在Windows下的主机文件中使用通配符。
但是,如果您只想更改主机文件以使新站点正常工作...你可以这样配置你的Apache,而且你不必一直编辑它的配置:
http://postpostmodern.com/instructional/a-smarter-mamp/
简单地说,根据我的设置,在apache.conf文件中添加以下内容:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
NameVirtualHost *:80
<Directory "/xampp/sites">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
VirtualDocumentRoot c:/xampp/sites/%-1/%-2+/
</VirtualHost>这使我可以添加一个条目,如:
127.0.0.1 test.dev然后创建目录c:\xampp\sites\dev\test,并在其中放置必要的文件,它就可以正常工作了。
另一种选择是在apache.conf中使用<Directory>标记并引用http://localhost/project/中的页面。
发布于 2008-09-26 07:41:54
我认为这是不可能的。
无论如何,每次添加新站点和位置时都必须修改apache虚拟根目录条目,因此将新名称同步到Windows vhost文件中并不是一件很大的工作。
更新:请检查下一个答案和对此答案的评论。这个答案已经6岁了,现在已经不正确了。
https://stackoverflow.com/questions/138162
复制相似问题