本文讲述如何通过Apache服务器进行动态域名解析绑定(泛域名解析绑定),也就是在一个服务器上同时解析绑定多个域名。附有实例操作,如有有需求的小伙伴们可以参考!

pd.conf中,对某个主机进行以下操作:

rewriteengine on

rewritecond %{HTTP_HOST} [^.]+/.域名/.cn$

rewriterule ^(.+) %{HTTP_HOST}$1 [C]

rewriterule ([^.]+)/.域名/.cn(.*) /$1$2

其他配置文件

接着在DNS中开设一个泛解析到对应的IP地址。

就可以实现下面的方案。

域名:xinruiyun.cn

绝对路径:/home/xinruiyun.cn/

www.xinruiyun.cn自动解析到 /home/xinruiyun.cn/www/

abc.xinruiyun.cn自动解析到 /home/xinruiyun.cn/abc/

等等子域名都可以自动解析到 /home/xinruiyuns.cn/对应子域名名称的文件夹

直接建立子域名名称的文件夹即可使用。不需重启apache。

泛域名解析就是将客户的域名全部解析到同一个IP地址。

例如客户的域名a.cn,之下所设的*.a.cn全部解析到同一个IP地址上去。

比如客户设b.a.cn就会自已自动解析到与a.cn同一个IP地址上去。

泛域名是指 * IN A 123.123.123.123 或 * IN CNAMEwww.aaa.cn

泛域名解析的用途:

1.可以让域名支持无限的子域名(这也是泛域名解析最大的用途)。

2.防止用户错误输入导致的网站不能访问的问题。

在DNS服务器里面设置泛域名解析有2种方式

1. 在域名解析里面设置 *.a.cn的A记录或者CName 记录指向某一个IP/服务器名(这种方式 虚拟主机用户是不支持的)

2. 在域名转发里面设置 *.a.cn转发到http://www.a.cn( 虚拟主机可以支持这种转发方式,用户在自己的程序中可以判断访问者要访问的域名),我们会在程序技术文档里面讲解

例子二:

实现动态二级域名解析的一个关键就是,把特有的名字怎么能够提出来,因为RewriteRule中的匹配,是不包括域名的匹配的,其实这其中就是一层窗户纸,把域名先重写放到“路径”中,再对“路径”重写一次就可以了,也就是说加一步过渡。这样说大概还一头雾水,给个实例。

首先按我上次写的文章的那个需求写一个,假设动态解析*.iecn.cn。

注意要先做一个所谓的范域名解析,就是说把所有*.iecn.cn解析到某个IP上去,这不是本文章讨论范围就不细说了。

Apache中相关配置如下:

DocumentRoot /YourWwwRoot/.default

ServerName all-sites

ErrorLog logs/all-sites-error_log

CustomLog logs/all-sites-access_log cnmon

# 下面三行实现动态解析

RewriteCond %{HTTP_HOST} ^[a-z0-9/-]+/.iecn/.cn$

RewriteRule ^/(.*)$ /%{SERVER_NAME}/$1 ##注##

RewriteRule ^/([a-z0-9/-]+)/.iecn/.cn/(.*)$ /YourWwwRoot/$1/$2 [L]

# 没有解析到的情况下扔到自己的一个PHP中做一下处理

RewriteRule ^.*$ /index.php [L]

注意我标注的地方,那一步就是一个过渡,说一下过程吧,假设现在访问:

经第一步重写,变成 /zhong.iecn.cn/xxx

经第二步重写就是 /YourWwwRoot/zhong/xxx 了,其他的操作与我行前说的基本就差不多了。

再举一个可能更常见的实例,假设一个博客系统,要求把

隐式的重写成

这里面的xxx可以看做是一个用户名,想必类似这样的需求大家一定都见过很多了,不过多解释了。

同意先做范域名解析这里不多说。在Apache中做如下重写(只写Rewrite部分了):

RewriteCond %{HTTP_HOST} ^[a-z0-9/-]+/.iecn/.cn$

RewriteRule ^/?$ /%{HTTP_HOST}

RewriteRule ^/([a-z0-9/-]+)/.iecn/.cn/?$ /blog.php?u=$1 [L]

Apache下用rewrite实现任意域名的动态解析

Apache的mod_rewrite模块功能非常强大,我以后会写更多的实例出来。

关于mod_rewrite的使用,不想多说,提供两个相关文档的地址:

如果你只是想用一个现成的你可以直接把我的copy过去改改,如果想从技术上搞清楚,那么首先要掌握两方面的技术:

Apache下mod_rewrite的使用(可参照我上面提供的两个地址)

正则表达式(这是一门在很多地方都非常有用的技术)

废话不多说,说一下我在IECN.NET服务器的实际配置。

我习惯使用NameVirtualHost,如果你的服务器中只想用这种动态的解析,直接在配置文件中做是一样的,如果想保留自己一些特殊站点的配置,还是用NameVirtualHost吧。

在Apache中,如果启用了NameVirtualHost,在没有匹配到的解析的情况下,会默认到第一组VirtualHost中,所以我们的动态解析自然是放到第一组VirtualHost(有关apache的一些配置这里就不多说,自己查阅相关文档。),如下:

DocumentRoot /YourWwwRoot/.default

ServerName all-sites

ErrorLog logs/all-sites-error_log

CustomLog logs/all-sites-access_log cnmon

# 下面两行实现动态解析

RewriteCond /YourWwwRoot/%{SERVER_NAME} -d

RewriteRule ^/(.*)$ /YourWwwRoot/%{SERVER_NAME}/$1 [L]

# 没有解析到的情况下扔到自己的一个PHP中做一下处理

RewriteRule ^.*$ /index.php [L]

把YourWwwRoot换成你自己的路径,注意这里的ServerName没有让它起作用,关建看这两行:

RewriteCond /YourWwwRoot/%{SERVER_NAME} -d

RewriteRule ^/(.*)$ /YourWwwRoot/%{SERVER_NAME}/$1 [L]

第一行是一个rewrite条件,这里的条件是:如果存在路径/YourWwwRoot/%{SERVER_NAME},%{SERVER_NAME}就是你访问站点的域名,-d就表示存在这个路径的意思(如果是文件则是-f);

第二行是一个rewrite规则,这个规则执行的前提是:符合规则的正则表达式匹配;符合它前面(也就是刚才说的第一行)rewrite条件。这里面是的匹配的是.*,也就是所有了,也就是说只要第一行的条件成立,它就会被重写到/YourWwwRoot/%{SERVER_NAME}/$1,% {SERVER_NAME}是站点的域名,$1则是匹配到的.*。

OK,现在就很清楚了,假设现在有www.xinruiyun.cn指向到这个服务器,当你访问它时(这里假设没有在其他VirtualHost解析这个域名),看看它是如何工作的:

首先它在没有找到匹配的解析时,就来到了这组默认的VirtualHost;

判断 /YourWwwRoot/www.xinruiyun.cn是否存在;

如果存在,重定向到 /YourWwwRoot/www.xinruiyun.cn。

假设你访问http://www.xinruiyun.cn/test.html,就会重定向到系统的 /YourWwwRoot/www.xinruiyun.cn/test.html。

那也就是说你在 YourWwwRoot 下建一个与域名同名的目录(并具备apache访问的权限),就实现了这个域名的解析。

linux apache绑定的域名解析,泛域名通过Apache绑定解析应该如何操作?相关推荐

  1. 通配符 泛域名 linux,openssl签署自己的泛域名(通配符)证书

    !!!! 火狐浏览器对多CN的通配符识别有问题,只识别第一个,所以建议用备用主机名(DNS)方式,.已测试有效 !!!! openssl自建CA默认签署的是单域名证书,因为单台服务器上有多个https ...

  2. 子域名绑定html,DEDE二级域名(多站点)绑定详解

    关键字描述:详解 站点 栏目 顶级 &nbsp 设置 绑定 目录 支持 二级域名 首先,DEDE在绑定多域名之前,需先作如下准备: 1.服务器或空间支持, 2.将你的域名指定到目录 接着我们就 ...

  3. 服务器如何封域名解析,网站域名被封禁,需要怎么操作才能避免对优化影响

    如果你发现自己的网站不能正常打开,一定要注意了,因为网站不能访问时,不仅会影响用户体验,同时会让搜索引擎认为你的网站不可信,从而影响网站SEO优化,甚至导致网站被降权.而网站不能访问时,很可能的原因之 ...

  4. 基于 OpenSSL 生成自签名证书,数字签名,泛域名证书,ca证书,PKI等

    基于 OpenSSL 生成自签名证书_qhh0205-CSDN博客_openssl自签名证书 windows 下 nginx 双向认证自签名证书配置 windows 下 nginx 双向认证自签名证书 ...

  5. linux dns 泛域名,LINUX DNS轮询+泛域名解析

    问题 沿用练习二,通过调整DNS服务端配置,实现以下目标: 为站点www.tedu.cn 实现DNS轮询解析,目标IP地址包括 192.168.4.100.192.168.4.110.192.168. ...

  6. 什么是A记录,子域名,CNAME别名,MX记录,TXT记录,SRV 记录,泛域名(泛解析),域名转向,域名绑定...

    什么是A记录,子域名,CNAME别名,MX记录,TXT记录,SRV 记录,泛域名(泛解析),域名转向,域名绑定 A记录 QUOTE: A (Address) 记录是用来指定主机名(或域名)对应的IP地 ...

  7. 泛域名是什么和什么是泛域名解析?

    什么是泛域名解析?域名泛解析主要的目的是为了防止用户在输入错误的URL时,导致网页无法打开时的一种处理方式,我们相信,只要网站优化好只需要检索到品牌词就可以直接找到官网.那接下来就来看看这篇泛域名是什 ...

  8. 泛域名解析(泛解析)的学习;泛域名解析域名和域名解析的区别

    泛域名解析域名 利用通配符*(星号)来做次级域名以实现所有的次级域名均指向同一IP地址(此IP须为独立IP). 在域名前添加任何子域名,均可访问到所指向的WEB地址.也就是客户的域名a.com之下所设 ...

  9. java 泛域名_Apache和Tomcat 实现泛域名解析的尝试

    Apache和Tomcat 实现泛域名解析的尝试 你想让自己的服务器为每个会员提供一个独立的二级域名吗?比如 aa.test.com bb.test.com/blog 当然aa.bb都是你的一个会员而 ...

最新文章

  1. 对tf.reduce_mean API的理解就是求平均值,reduce指的是一串数据求平均值后维数降低了,可不是吗,一串向量变成了一个数,维数自然降低了
  2. pom.xml错误:org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)的解决方法
  3. 2022-03-16
  4. windows上dmg转换cdr_云主机装黑果实践(6):处理云主机上变色龙启动后置过程:驱动和黑屏...
  5. JavaScript上传图片及时预览
  6. 1049. 数列的片段和(20)
  7. oracle number +1,number number(1)
  8. java double 存储_可以存储在double中的最大整数
  9. php mysql实现删除功能_这个PHP / MySQL删除功能是否安全?
  10. 请客必备:【转】100元以内南宁市有特色的餐馆
  11. 三阶魔方还原公式图解记忆
  12. 中国眼下拥有的人造卫星的种类及其作用
  13. 微信编辑器的文章复制到公众号以后乱码怎么解决?
  14. mysql临界锁_mysql锁
  15. Raft一致性算法逻辑详解
  16. Web 开发最有用的50款 jQuery 插件集锦——《图片特效篇》
  17. 数据保护新愿景:欧盟GDPR十个误解与争议
  18. Python验证注册用户名是否正确
  19. C# 以GET或Post方式请求Web地址
  20. 苏州大学计算机系收分,2016年苏州大学艺术类专业录取分数线

热门文章

  1. smarty 怎么写php代码,介绍smarty模板_php
  2. python全栈开发—函数整理(最后一次整理,不能再全了)
  3. ChatGPT怎么用?几个技巧让你快速掌握使用!
  4. SQL中取一个月的数据的处理方式
  5. 华为云如何赋能无人车飞驰?从这群AI热血少年谈起
  6. 采购是德科技原厂二手机,你还可以这样
  7. 聚焦百度年会美女刘冬——IT听听看特别版
  8. 关于log4net的详细使用教程
  9. java线程看门狗,ARM之看门狗~! - junjun - JavaEye技术网站 - 小陈的日志 - 网易...
  10. 永磁同步电机无速度传感器控制(三)——模型参考自适应法(二)【自适应律的设计】