如何使用虚拟主机将动态子域提供给位于 docroot 中的文件夹
Posted
技术标签:
【中文标题】如何使用虚拟主机将动态子域提供给位于 docroot 中的文件夹【英文标题】:How to serve dynamic subdomains to a folder located within docroot using vhosts 【发布时间】:2019-12-19 15:17:50 【问题描述】:我已尝试通过 .htaccess 使用 Mod Rewrite 来解决此问题,但无济于事。
所以我会问是否可以通过 Vhosts 完成。
这是使用 Apache 的 CentOS7。
我有一个域,叫它 mydomain.com。它位于(docroot)中
用户是在名为 Users 的 (docroot) 文件夹中动态创建的。因此,例如,用户 'xxx' 将位于文件夹 (docroot)/Users/xxx 中,而用户 'yyy' 将位于 (docroot)/yyy 文件夹中,如此......
到目前为止,我正在尝试做的事情是找到一种方法将子域流量引导到 xxx.mydomain.com 并提供 (docroot)/Users/xxx 或 yyy.mydomain.com 的内容服务 (docroot)/Users/yyy 等。
相比之下,如果我将访问 mydomain.com 的流量仅定向到 (docroot)
所以 mydomain.com 指向 /var/www/html 并且 xxx.mydomain.com 应该指向 /var/www/html/Users/xxx
问题是,如果我使用 .htaccess,它想将 xxx.mydomain.com 更改为 mydomain.com/Users/subdomain。这不是我要找的。p>
它需要保留 xxx.mydomain.com ,所以不重写 url ,同时提供相应的目录,即 /var/www/html/Users/xxx
任何帮助将不胜感激。可以给出任何澄清
我已尝试将 .htaccess 文件修改为没有结束
到目前为止,我已经尝试将此作为我的 conf 文件,但没有结束。
<VirtualHost *:80>
ServerName dev.mydomain.com
ServerAlias dev.mydomain.com
DocumentRoot /var/www/html/mydocroot
</VirtualHost>
<VirtualHost *.80>
ServerAlias *.dev.mydomain.com
VirtualDocumentRoot /var/www/html/mydocroot/Users/%0
</VirtualHost>
我很好奇我做错了什么
【问题讨论】:
Virtualhost For Wildcard Subdomain and Static Subdomain的可能重复 特别检查这个答案,***.com/a/48893687/10283047——我认为你应该在那里使用%1
,而不是%0
我自己解决了问题。但是谢谢它确实有帮助
【参考方案1】:
我已经解决了我自己的问题。对于那些想知道的人:
<VirtualHost *:80>
ServerName dev.mydomain.com
ServerAlias dev.mydomain.com
DocumentRoot /var/www/html/docroot
</VirtualHost>
<VirtualHost *:80>
ServerAlias *.dev.mydomain.com
VirtualDocumentRoot /var/www/html/docroot/Users/%1
</VirtualHost>
【讨论】:
以上是关于如何使用虚拟主机将动态子域提供给位于 docroot 中的文件夹的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess 读取服务器上任何动态子域的内部 index.php
使用 Express 和 Node,如何跨子域/主机头维护会话