Apache 中的动态虚拟主机

Apache 中的动态虚拟主机

我知道可以使用代码来设置这个系统,而且维护虚拟主机非常麻烦,但是是否有一种动态的方法来检查文件夹是否存在?

我想设置一个系统,在网站上,默认 URL 是 ,www.domain.com它会查找public_html/live/,但如果我设置 ,dev.domain.com它会查找public_html/dev/,但如果我设置 ,dev-live.domain.com它会查找 ,public_html/dev/并且它会使用 LIVE 数据库。

我希望它能够这样设置,这样我只需要创建一个新的目录public_html就可以创建一个新的子域,但仍然能够保持添加的能力-[INSERT_DB]

答案1

你应该能够使用mod_vhost_alias让任意虚拟主机工作如下:

UseCanonicalName Off
VirtualDocumentRoot /home/username/public_html/%1

我不确定你打算如何让 Apache 选择数据库,但你可以这样做mod_rewrite和设置文档根目录

答案2

为你的开发网站创建一个新的虚拟主机。例如:

<VirtualHost *>
        ServerName dev.domain.com
        ServerAlias dev*.domain.com    
        DocumentRoot /my/path/public_html/dev/
</VirtualHost>

这会将 dev.domain.com 和 dev-live.domain.com 路由到同一个位置。

由于您还想动态切换数据库,因此您还需要更改应用程序代码,使其足够智能,能够查看传入的 URL 并使用正确的数据库。您可能不想在 Apache 级别执行此操作(仅代表我的观点)。

相关内容