284354749 发表于 2018-11-28 10:44:02

apache mod_vhost_alias模块使用

现在有个需求如下:
a.xxx.com访问目录a
b.xxx.com访问目录b
.
.
.
n.xxx.com访问目录n

如果配置虚拟主机就需要配置n个虚拟主机,管理起来也不方便。
还好apache有个mod_vhost_alias模块正解以上问题。
  本模块通过将HTTP请求中的IP地址和/或"Host:"头内容转换为所要提供服务的文件路径名来创建动态的虚拟主机配置。这样的做法,使得应用配置大量相似的虚拟主机变得更为容易。
  目录名称的转换
%%插入一个百分号(%)%p插入虚拟主机的端口号%N.M插入名称(或者名称的一部分)  N和M被用来指定name中的子字符串。N从name中用小数点分隔的某部分中选取,而M是从N选中的字符串中选取部分字符。M是可选的且默认为"0";小数点当且仅当M存在时才必须书写。替换操作如下:
0整个name1第一部分2第二部分-1最后一部分-2倒数第二部分2+从第二部分开始到最后的所有部分-2+倒数第二部分以及之前的各部分1+和-1+等同于0  如果N或M大于部分的个数,则简单的用下划线来替换。
  以下为配置实例
DNS中为xxx.com配置泛域名解析
*               IN      A       xxx.xxx.xxx.xxx
apache配置如下


    ServerAdminroot@localhost
    DocumentRoot "/data/websites"
#使用泛域名
    ServerName *.xxx.com
#apache将使用从客户端请求中获取服务器名字和端口号,重新构建url,默认为on
    UseCanonicalName Off
#以“."为分界点,取倒数第三段作为目录名
    VirtualDocumentRoot /data/websites/%-3
   
      Options FollowSymLinks
      AllowOverride FileInfo AuthConfig Limit
      Order allow,deny
      Allow from all
   

配置完毕重启生效



页: [1]
查看完整版本: apache mod_vhost_alias模块使用