用于本地开发的 VirtualDocumentRoot 设置

用于本地开发的 VirtualDocumentRoot 设置

我正在尝试了解如何设置 httpd.conf 和 httpd-vhosts.conf 文件。我想在 Windows 7 上使用 Wampserver 进行本地设置,这样我只需添加新目录并快速编辑 hosts 文件即可添加新项目。我希望它至少适用于以下通用域格式:domain.com、www.domain.com、sub.domain.com 和 www.sub.domain.com。

以下是我目前所拥有的。它似乎有效,但我只是认为可能存在更好、更简洁的方法:

NameVirtualHost *:80

<Directory "C:/wamp/www/%0/public_HTML">
    Options Indexes FollowSymLinks Includes
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>
    VirtualDocumentRoot "C:/wamp/www/%0/public_HTML"
</VirtualHost>

<VirtualHost *:80>
    ServerAlias www.*.*.com
    VirtualDocumentRoot "C:/wamp/www/%3+/public_HTML/%2"
</VirtualHost>

<VirtualHost *:80>
    ServerAlias www.*.com
    VirtualDocumentRoot "C:/wamp/www/%2+/public_HTML"
</VirtualHost>

<VirtualHost *:80>
    ServerAlias *.*.com
    VirtualDocumentRoot "C:/wamp/www/%2+/public_HTML/%1"
</VirtualHost>

我的文件夹结构如下:C:/wamp/www/(project)/public_HTML/(文件夹命名为sub.domain.com的子部分)

这可行,但如果我以任何方式更改 VirtualHosts 的顺序,则会导致上述至少一种域格式出现 404 错误。我想知道是否有人可以向我解释这是为什么?此外,如果有人有更好的方法建议,我很乐意听听。

谢谢!

答案1

我遇到了类似的问题,但模式略有不同,我的虚拟主机使用“.dev”后缀,并使用完整域名作为文件夹名称。

我得到了与VirtualDocumentRoot /www/sites/%-2+/public_html...合作的机会

<VirtualHost *:80>
  ServerName dev
  ServerAlias *.dev
  UseCanonicalName Off
  VirtualDocumentRoot /www/sites/%-2+/public_html
</VirtualHost>

例如,上述代码将对 test.com.dev 的请求解析为 www/sites/test.com/public_html

/www/%2+/public_html/%1我认为你只需要解决最后一个问题测试网但请www/test.com/public_html/dev检查文档以找到确切的模式:http://httpd.apache.org/docs/2.0/mod/mod_vhost_alias.html#interpol

我还发现这篇文章很有帮助: http://blog.theclickpro.com/2010/12/dynamic-apache-configuration-for-php.html

您还可以使用 DNSmasq 来自动完成主机输入。

相关内容