假设有域名domain.com,已经泛解析子域名*.domain.com到该主机的ip,web根目录为/var/www/
在访问a.domain.com时,能自动绑定/var/www/a/目录,访问b.domain.com时,能自动绑定/var/www/b/目录

1、分别手动建立相应的virtualhost

主机配置文件vhost.conf

  1. <VirutualHost *:>
  2. DocumentRoot /var/www/
  3. ServerName domain.com
  4. ServerAlias *.domain.com
  5. </VirtualHost>

以及/var/www/.htaccess文件

  1. <IfModule mod_rewrite.c>
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$
  5. RewriteCond %{REQUEST_URL} !^/%1/
  6. RewriteRule ^(.*)$ %1/$1
  7. </IfModule>

此时不论以哪个域名访问,都会返回服务器内部错误

如果把RewriteCond %{REQUEST_URL} !^/%1/这行配置中的%1替换成具体的字符串,如a,这样的话,能够实现a.domain.com绑定到/var/www/a/目录,但是其他域名依然是/var/www/目录

2、任意主机名的虚拟主机

  1. RewriteEngine on
  2.  
  3. RewriteMap lowercase int:tolower
  4.  
  5. RewriteCond "${lowercase:%{HTTP_HOST}}" "^www\.([^.]+)\.example\.com$"
  6. RewriteRule "^(.*)" "/home/%1/www$1"

3、vhost_alias模块实现通配子域名

主机配置文件vhost.conf

  1. <VirtualHost *:80>
  2. ServerAdmin webmaster@localhost
  3.  
  4. ServerName test.loc
  5. ServerAlias *.test.loc
  6.  
  7. # This will be the wildcarded document root. Any folder you create in /var/www/test will be automatically a subdomain name.
  8. VirtualDocumentRoot /var/www/test/%-3
  9.  
  10. # For symlinking your projects and htaccesses to work
  11. <Directory />
  12. Options FollowSymLinks
  13. AllowOverride All
  14. </Directory>
  15.  
  16. ErrorLog /var/log/apache2/vhosts-error.log
  17.  
  18. # Possible values include: debug, info, notice, warn, error, crit,
  19. # alert, emerg.
  20. LogLevel warn
  21.  
  22. CustomLog /var/log/apache2/vhosts-access.log combined
  23. </VirtualHost>

https://inchoo.net/magento/how-to-setup-semiautomatic-per-folder-wildcard-subdomains-on-your-local-linux-based-development-computer/

https://httpd.apache.org/docs/2.4/rewrite/vhosts.html

Apache多虚拟主机多版本PHP(5.2+5.3+5.4)共存运行配置全过程

apache 子域名自动与子域名同名的目录绑定的更多相关文章

  1. com.apache.dc.query.Query所属包名apache-common-sid.jar

    com.apache.dc.query.Query所属包名apache-common-sid.jar 首先这个类是基于HQL的,好多方法里面要传String clzz, 刚开始我真不知道这个参数传什么 ...

  2. eclipse 包 取消代码第一行package包名 自动补全时取消自动引入包名 修改名字 取消引用 自动导入publilc static void main(String[] args) {}

    --项目 --包 包是为了管理类文件,同个包下不允许同名类文件,但不同包就可以,把类放在包里是规范 (https://zhidao.baidu.com/question/239471930532952 ...

  3. 如何解决eclipse、MyEclipse中变量名自动补全问题

    背景:这个问题困扰了很长时间,解决过程也并不顺利.不断的试错,再次让我理解这下面这句话—— 世界上对的路可能只有一条,错的路却可能有成千上万条,不要成为别人的前车之鉴.开发之路,只需要记住对的路就行了 ...

  4. “万能数据库查询分析器” 5.03发布,访问EXCEL将自动为表名前后加上中括弧

        "万能数据库查询分析器" 5.03发布,访问EXCEL将自动为表名前后加上中括弧 1          引言    中国本土程序员马根峰推出的个人作品----万能数据库查询 ...

  5. eclipse自动生成变量名声明(按方法返回值为本地变量赋值)

    eclipse自动生成变量名声明(按方法返回值为本地变量赋值) ctrl+2+L 这个快捷键可自动补全代码,极大提升编码效率! 注:ctrl和2同时按完以后释放,再快速按L.不能同时按! 比如写这句代 ...

  6. JPA中自动使用@Table(name = "userTab")后自动将表名、列名添加了下划线的问题

    一.问题 JPA中自动使用@Table(name = "userTab")后自动将表名.列名添加了下划线的问题,如下图: 二.解决 在application.properties文 ...

  7. thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法)

    thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法) 一.总结 记得看下面 1.获取器的作用是在获取数据的字段值后自动进行处理 2.修改器的作用是可以在数据赋值的时候自动进行转换处 ...

  8. Django 修改该项目文件夹、项目名及项目文件夹中同名文件夹,报错 ModuleNotFoundError: No module named 'untitled'

    如果你直接重构项目文件夹名及重构项目名和重构项目文件夹内同名文件夹 执行项目报错 ModuleNotFoundError: No module named 'untitled' 请执行以下操作

  9. gorm框架表名自动加s问题

    查看日志会发现表名自动加了s 在model实现以下方法即可解决 type UsUser struct { ID int64 `gorm:"column:id" db:"c ...

随机推荐

  1. Python中where()函数的用法

    where()的用法 首先强调一下,where()函数对于不同的输入,返回的只是不同的. 1当数组是一维数组时,返回的值是一维的索引,所以只有一组索引数组 2当数组是二维数组时,满足条件的数组值返回的 ...

  2. Oracle学习笔记(五)

    七.查询 1.基本查询语句 select 列名字,列名字 from 表名字 例如 select user_a_id from userinfo; 2.在SQL*PLUS中设置格式 (1)设置新的字段名 ...

  3. 20169221 2016-2017-2《移动平台与android开发》学习总结

    每周作业连接汇总 第一周<Intellj IDEA 简易教程>学习,码云的基础使用.由于第一次写作业,网络攻防作业占据了我整个周四周五周六的时间这周java时间被挤没了,所以没有完成所有学 ...

  4. jmeter 各种配置修修改(后续增加)

    1.修改物理内存  使用jmeter进行压力测试时遇到一段时间后报内存溢出outfmenmory错误,导致jmeter卡死了,先尝试在jmeter.bat中增加了JVM_ARGS="-Xmx ...

  5. ZOJ2748 Free Kick 2017-04-18 20:40 40人阅读 评论(0) 收藏

    Free Kick Time Limit: 2 Seconds      Memory Limit: 65536 KB In a soccer game, a direct free kick is ...

  6. Chain Of Responsibility Design Pattern Example

    Avoid coupling the sender of a request to the receiver by giving more than one object a chance to ha ...

  7. Web 应用简单测试方案

    测试:一定要分阶段测试,先确定入队列成功,再测试队列的执行是否成功. 功能点: 1. 翻页2. 加精3. 置顶4. 帖子浏览量(PV)5. 发帖6. 回复7. 评论 8. crontab 脚本 @20 ...

  8. Lucene--FuzzyQuery与WildCardQuery(通配符)

    FuzzyQuery: 创建索引: IndexWriter writer = new IndexWriter(path, new StandardAnalyzer(), false); writer. ...

  9. windows过滤指定IP

    通过windows的安全管理策略工具我们可以实现对IP的过滤.整个过程比较复杂.我们以图形演示. 下面我们以windows 8.1作为示例. 1.控制面板=>管理工具=>本地安全策略. 2 ...

  10. C#实现像微信PC版一样的扫码登录功能

    现在好些网站都支持扫码登录,感觉上安全了很多,但是本地程序扫码登录的不多,就用C#实现了一下,需要作如下准备 在官网上申请一个企业微信,有条件的话做个企业认证吧,我们的是认证过的,所以账号和本地其他系 ...