我知道可以使用代码来设置这个系统,而且维护虚拟主机非常麻烦,但是是否有一种动态的方法来检查文件夹是否存在?
我想设置一个系统,在网站上,默认 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 级别执行此操作(仅代表我的观点)。