apache实现企业自定义二级域名管理-mod_rewrite

目的

最近公司在做电子商务网站,需要做各个企业的电子商务网站,就如淘宝一样,给每个淘宝商铺开设*.taobao.com的二级域名,策划部门为了提高客户的新鲜度,也准备这么做;

800年前,当时申请网易的免费个人主页的时候,还在惊奇,网易的DNS管理员太NB了,这么多人的免费主页,如果他要做域名的映射,不得累死才怪,原来有好的办法可以实现的

实验

1、安装apache,我安装的2.4版本,安装好之后,启动apache

2、修改apache配置文件

    第一步、启动rewrite模块,将以下行前面的#删除

  

LoadModule rewrite_module modules/mod_rewrite.so

   第二步、增加虚拟机设置,

      test.com   你要测试的域名

      C:/Program Files/Apache Software Foundation/Apache2.2/htdocs web服务器默认目录,可以自行修改

<VirtualHost localhost:80>
ServerName *.test.com
ServerAlias *.test.com
RewriteEngine on
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"

RewriteLog "C:/Program Files/Apache Software Foundation/Apache2.2/logs/rewrite.log" 


RewriteCond %{HTTP_HOST} ^[A-Za-z0-9\-]+\.test\.com$
RewriteRule ^/(.*)$ /%{HTTP_HOST}/$1
RewriteRule ^/([A-Za-z0-9\-]+)\.test\.com/(.*)$ "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/$1/$2" [L]



</VirtualHost>

 

   第三步、修改C:\WINDOWS\system32\drivers\etc配置

   因为没有外网实际环境,只能通过hosts文件来模拟外网DNS环境了,增加如下行

127.0.0.1       a.test.com
127.0.0.1       b.test.com
127.0.0.1       www.test.com

 第四步、重启apache

第五步、在C:/Program Files/Apache Software Foundation/Apache2.2/htdocs目录下建立以下目录a和b目录,并防止不同的html文件

第六步、打开ie,输入a.test.com看看效果,配置成功

生产环境

在介绍之前先简单介绍下什么是

泛域名解析

1、设置DNS泛域名解析,将所有*.test.com全部指向到配置好的apache服务器;

2、设置一个跳转页面,通过域名查找到企业的ID,然后转到标准的企业展示页面

什么是泛域名解析?
  泛域名解析是指将*.域名解析到同一IP。
  在域名前添加任何子域名,均可访问到所指向的WEB地址。也就是客户的域名#.com之下所设的*.#.com全部解析到同一个IP地址上去。
  比如客户设1.#.com就会自己自动解析到与#.com同一个IP地址上去。
  泛域名解析域名域名解析的区别?
  泛域名解析是:*.域名解析到同一IP。
  域名解析是:子域名.域名解析到同一IP。
  注意:只有你的空间是独立IP的时候泛域名才有意义。而域名解析则没有此要求。

 问题

测试中发现一个比较麻烦的问题,那就是如何处理www.test.com,因为按照rule中的正则表达式,www也是要跳转的,解决该问题的办法就是

1、在web目录下开设一个WWW目录,放置网站的首页

2、WWW.test.com和二级域名的IP地址指向不是同一台机器,也可以解决此问题

相关推荐