Apache 如何将所有*.dev路由到vagrant box上的子文件夹
我希望每个Apache 如何将所有*.dev路由到vagrant box上的子文件夹,apache,vagrant,vhosts,virtual-hosts,Apache,Vagrant,Vhosts,Virtual Hosts,我希望每个*.dev主机都将路由到我的流浪机器/var/www/vhosts/*.dev/public,例如,我的本地开发环境project1.dev位于/var/www/vhosts/project1.dev/public 因此,当我将一个新的(子)项目添加到我的框中时,我不需要更改config.yaml(通过puphpet.com安装的Vagrant)并重新加载机器 在我的计算机上,我在/private/etc中的hosts文件中添加了以下内容: 192.168.56.101 *.dev
*.dev
主机都将路由到我的流浪机器/var/www/vhosts/*.dev/public
,例如,我的本地开发环境project1.dev
位于/var/www/vhosts/project1.dev/public
因此,当我将一个新的(子)项目添加到我的框中时,我不需要更改config.yaml(通过puphpet.com安装的Vagrant)并重新加载机器
在我的计算机上,我在/private/etc
中的hosts文件中添加了以下内容:
192.168.56.101 *.dev
在我的虚拟机上,我将/etc/apache2/sites enabled
中的10-default_vhosts80.conf
更改为:
# ************************************
# Vhost template in module puppetlabs-apache
# Managed by Puppet
# ************************************
<VirtualHost *:80>
ServerName default
## Vhost docroot
DocumentRoot "/var/www/default"
## Directories, there should at least be a declaration for /var/www/default
<Directory "/var/www/default">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
## Load additional static includes
## Logging
ErrorLog "/var/log/apache2/default_vhost_80_error.log"
ServerSignature Off
CustomLog "/var/log/apache2/default_vhost_80_access.log" combined
## Custom fragment
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/default/$1
</VirtualHost>
<VirtualHost *.dev:80>
ServerName dev
VirtualDocumentRoot /var/www/vhosts/%0
</VirtualHost>
#************************************
#apache模块中的Vhost模板
#傀儡管理
# ************************************
服务器名默认值
##Vhost docroot
DocumentRoot“/var/www/default”
##目录中,至少应该有/var/www/default的声明
选项索引跟随符号链接多视图
不允许超限
要求所有授权
##负载附加静态包括
##伐木
ErrorLog“/var/log/apache2/default\u vhost\u 80\u error.log”
服务器签名关闭
CustomLog“/var/log/apache2/default\u vhost\u 80\u access.log”组合
##自定义片段
ProxyPassMatch^/(.\.php(/.*)$fcgi://127.0.0.1:9000/var/www/default/$1
服务器名开发
VirtualDocumentRoot/var/www/vhosts/%0
不幸的是,这不起作用。有什么想法吗?我是这方面的初学者。不幸的是,主机文件不支持使用通配符。您必须手动定义每个要重定向的主机 另外,您的主机文件位于
/etc/hosts
最后,我使用它将所有.localdev
域路由到127.0.0.1。请注意,我使用的是.localdev
而不仅仅是.dev
或.local
,因为这似乎会导致问题(OS X 10.10),因为.dev
是一个
然后,我通过创建并启用此站点来配置Apache:
<VirtualHost *:80>
ServerAlias localhost *.localdev #wildcard catch all
VirtualDocumentRoot /hosts/%1/public
UseCanonicalName Off
<Directory "hosts">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
ServerAlias localhost*.localdev#通配符全包
VirtualDocumentRoot/hosts/%1/public
UseCononicalName关闭
选项如下符号链接
允许超越所有
命令允许,拒绝
通融
(from:)我使用了一个。这适用于Windows、MacOS和Linux。简单,不需要额外的软件。以下示例将所有*.dev
流量路由到您的流浪者邮箱:
函数FindProxyForURL(url,主机){
if(dnsDomainIs(主机,.dev”)){
返回“PROXY 127.0.0.1:8080”;
}
返回“直接”;
}
需要时,用vagrant box的IP和Web服务器端口替换127.0.0.1:8080
。将此文件存储在某个位置。您可以将其存储在本地,也可以让Vagrant box上的Web服务器托管该文件
Windows:查看如何在Windows上使用PAC文件
MacOS:查看如何在MacOS上使用PAC文件。您可以使用file:///Users/username/path/to/proxy.pac
Linux:这取决于Linux,但我相信Linux用户将能够根据他们的具体情况使用谷歌搜索。我将尝试添加通配符支持: