【问题标题】:whatever subdomain redirect to a specific folder任何子域重定向到特定文件夹
【发布时间】:2014-01-16 09:48:31
【问题描述】:

我有以下结构

  • 网络应用
  • 网站
  • .htaccess

我已经制作了一个如下所示的虚拟主机

  • 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.comwww.yourdomain.com(但不匹配 yourdomain.com)。所以通配符 (*) 域必须是文件中的最后一个域,因此它只捕获未发送到 wwwapp 的请求。

    【讨论】:

      猜你喜欢
      • 2021-07-03
      • 2018-03-08
      • 1970-01-01
      • 2013-09-23
      • 1970-01-01
      • 2017-12-12
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多