我目前在我的虚拟主机configuration中正在工作,但是我想修改它。
目前我的虚拟主机configuration看起来像
<VirtualHost *:8080> ServerName dev ServerAlias *.dev CustomLog "/Users/owen/Sites/logs/dev-access_log" combinedmassvhost ErrorLog "/Users/owen/Sites/logs/dev-error_log" VirtualDocumentRoot /Users/owen/Sites/%-2+/httpdocs </VirtualHost>
所以这个自动路由,像http://owen.website.dev到/Users/owen/Sites/owen.website/
但是,我想修改它,所以owen前缀是自动的,例如,当您访问http://owen.website.dev它将转到/Users/owen/Sites/website/
我试图干脆
<VirtualHost *:8080> ServerName dev ServerAlias *.dev CustomLog "/Users/owen/Sites/logs/dev-access_log" combinedmassvhost ErrorLog "/Users/owen/Sites/logs/dev-error_log" VirtualDocumentRoot /Users/owen/Sites/owen.%-2+/httpdocs and #VirtualDocumentRoot /Users/owen/Sites/owen\.%-2+/httpdocs </VirtualHost>
然而无济于事,请有人提供给我正确的VirtuaDocumentroot来启用这个自动虚拟主机?
谢谢
经过反复试验和解密apache文档后,我发现只要从path中删除- and +可以了。
所以,如果你使用
<VirtualHost *:8080> ServerName dev ServerAlias *.dev CustomLog "/Users/owen/Sites/logs/dev-access_log" combinedmassvhost ErrorLog "/Users/owen/Sites/logs/dev-error_log" VirtualDocumentRoot /Users/owen/Sites/%2/httpdocs </VirtualHost>
我相信这种方式的工作(很可能是错误的),如果你想象你有一个像一个URL
environment.project.dev – Apache通过. 给你
$0 = environment.project.dev $1 = environment $2 = project $3 = dev
由于project是你想加载的文件夹,你只需要引用$2variables,让我一起
VirtualDocumentRoot /Users/owen/Sites/%2/httpdocs
这将加载在上面的示例/Users/owen/Sites/project/httpdocs
这样做的好处之一是允许你在你的主机文件或DNS级别
192.168.1.50 matt.project.dev 192.168.1.51 emily.project.dev 192.168.1.52 shaun.project.dev
那么您可以轻松地查看其他人的网站版本。