【问题标题】:whatever subdomain redirect to a specific folder任何子域重定向到特定文件夹
【发布时间】:2014-01-16 09:48:31
【问题描述】:
我有以下结构
我已经制作了一个如下所示的虚拟主机
- mydomain.com -> 指向 -> 网站
- app.mydomain.com -> 指向 -> webapp
我需要应用通配符 DNS 概念来使任何子域指向我的 webapp 文件夹,并将子域保留在 url 中。
喜欢
用户名.mydomain.com
公司名称.mydomain.com
不管是什么.mydomain.com
并让它们指向 webapp 文件夹
是否有任何虚拟主机或 .htaccess 方法可以做到这一点?
问候
【问题讨论】:
标签:
apache
.htaccess
mod-rewrite
subdomain
wildcard
【解决方案1】:
根据Apache docs,vhost解析使用定义顺序。以下配置应该做你想做的事:
<VirtualHost *:80>
ServerName www.yourdomain.com
ServerAlias yourdomain.com
DocumentRoot /www/yourdomain/website
</VirtualHost>
<VirtualHost *:80>
ServerName app.yourdomain.com
DocumentRoot /www/yourdomain/webapp
</VirtualHost>
<VirtualHost *:80>
ServerName *.yourdomain.com
DocumentRoot /www/yourdomain/customsubdomain
</VirtualHost>
Apache 会将请求路由到与ServerName 指令匹配的第一个虚拟主机
-
yourdomain.com 将匹配第一个
-
www.yourdomain.com 将匹配第一个
-
app.yourdomain.com 将匹配第二个
-
companyname..yourdomain.com第三个
-
username.yourdomain.com第三个
- 等等……
*.yourdomain.com 匹配 app.yourdomain.com 和 www.yourdomain.com(但不匹配 yourdomain.com)。所以通配符 (*) 域必须是文件中的最后一个域,因此它只捕获未发送到 www 或 app 的请求。