`
jaychang
  • 浏览: 731286 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

APACHE对域名的泛解析

 
阅读更多

很多网站都开通blog功能。当今也比较流行的,我在CU上也注册了一个如:chenwenming.cublog.cn 注册完后,地址栏输入:http://chenwenming.cublog.cn 后自动转到blog.chinaunix.net/u1/40226/立马就生效了,当时感觉很奇怪,一般域名生效起码等2个小时后才能生效。后来查了相 关资料,原来是域名的泛解析.
在DNS服务器上添加一条A记录。其中,“主机名”填写“*” ,“指向”填写为自己网站的服务器IP。这样所有
*.cublog.cn 都指向60.28.166.87所以不管你申请什么名字,如:chenwenming.cublog.cn 都解析到这个IP上。最主要的是apache的配置了。
将所有的虚拟主机段先删除,加入
ServerName local
ServerAlias *
UseCanonicalName OFF
VirtualDocumentRoot D:/www/%1
ServerName在这里不起作用,ServerAlias会将域名解析到D:/www下对应的目录,这样就不用每次都修改httpd.conf文件了。
需要注意的是使用VirtualDocumentRoot指令需要加载mod_vhost_alias模块,
去掉包含mod_vhost_alias行对应的LoadModule和AddModule前面的"#",restart一下apache就OK了
试了一下,果然很爽,可以使用
VirtualDocumentRoot /www/%2+
来实现泛解析,不过不管什么二级域名都被解析到根目录了,郁闷!也就是说
*.21andy.com 会被指向 /www/21andy.com
再想想,于是,可以用
VirtualDocumentRoot /www/%2+/%0
来实现二级域名分目录,即
www.21andy.com 会被指向 /www/21andy.com/www.21andy.com
test1.21andy.com 会被指向 /www/21andy.com/test1.21andy.com
test2.21andy.com 会被指向 /www/21andy.com/test2.21andy.com
有点不足,这样,www.21andy.com 也需要在21andy.com目录下再建一个目录了,要是www能到根目录,其他二级域名到二级目录就好了,不过也好,这样规范点,呵呵
主要是以下这2句,再也不用一个个绑域名了,只需要建立对应域名的目录
UseCanonicalName Off
VirtualDocumentRoot /www/%2+/%0
==============================================================
一、使用 mod_vhost_alias
1. 简单的动态虚拟主机
# 从 Host: 头中取得服务器名字 Server Name
UseCanonicalName Off
# 这里的日志格式,可以在将来通过第一个参数域来分隔不同的虚拟主机的日志
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon
# 在返回请求的文件名的路径中包含进服务器名字: server name
VirtualDocumentRoot /www/hosts/%0/docs
VirtualScriptAlias /www/hosts/%0/cgi-bin
2. 更为有效的基于 IP 地址的虚拟主机
# 从 IP 地址反解析得到服务器名字(server name)
UseCanonicalName DNS
# 在日志中包含 IP 地址,便于后续分发
LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon
# 在文件路径中包含 IP 地址
VirtualDocumentRootIP /www/hosts/%0/docs
VirtualScriptAliasIP /www/hosts/%0/cgi-bin
二、使用 mod_rewrite
1. 使用 mod_rewrite 实现简单的动态虚拟主机
# 从 Host: 头获取服务器名字
UseCanonicalName Off
# 可分割的日志
LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon
# ExecCGI is needed here because we can't force
# CGI execution in the way that ScriptAlias does
Options FollowSymLinks ExecCGI
# 接下来是关键部分
RewriteEngine On
# a ServerName derived from a Host: header may be any case at all RewriteMap lowercase int:tolower
## 首先处理普通文档:
# 允许变名 /icons/ 起作用 - 其他变名类同
RewriteCond %{REQUEST_URI} !^/icons/
# 允许 CGIs
RewriteCond %{REQUEST_URI} !^/cgi-bin/
# 开始“变戏法”
RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1
## 现在处理 CGIs - 我们需要强制使用一个 MIME 类型
RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1 [T=application/x-httpd-cgi]
# 好了!
2. 使用独立的虚拟主机配置文件 vhost.map
vhost.map 文件包含了类似下面的内容:
www.customer-1.com /www/customers/1
www.customer-2.com /www/customers/2
# ...
www.customer-N.com /www/customers/N
http.conf 包含了:
RewriteEngine on
RewriteMap lowercase int:tolower
# 定义映像文件
RewriteMap vhost txt:/www/conf/vhost.map
# 和上面的例子一样,处理变名
RewriteCond %{REQUEST_URI} !^/icons/
RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
# 这里做基于文件的重新映射
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/docs/$1
RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/cgi-bin/$1

分享到:
评论

相关推荐

    apache+tomcat域名泛解析

    通过上述配置,我们不仅能够实现Apache对于Tomcat应用的泛域名解析,还能进一步优化访问路径和目录结构,使得整个系统的管理变得更加灵活和高效。值得注意的是,在实际操作过程中还需根据具体环境调整配置细节,例如...

    apache的解析域名到目录的方法

    当需要将域名解析到特定的目录时,Apache提供了一种方法来实现这一功能,主要涉及到Apache的配置文件`httpd.conf`以及模块`mod_rewrite`的使用。 首先,确保你有一个具有泛域名解析的顶级域名,比如`domain.com`。...

    LINUX ASP Apache多域名解析(这个有用之人下吧)

    LINUX ASP Apache多域名解析(这个有用之人下吧,挺经典的。)

    linux apache泛域名解析及dns相关

    Apache泛域名解析是指在Apache服务器中使用通配符来实现对多个子域名的解析,而DNS(Domain Name System)是将域名解析为IP地址的系统。下面我们将详细介绍Linux Apache泛域名解析及DNS相关知识点。 一、Apache泛...

    Linux apache环境多域名配置

    2. **DNS解析**:域名必须正确地指向服务器IP地址。 3. **SSL证书**:如果需要使用HTTPS,则还需要为每个域名配置SSL证书。 4. **权限问题**:确保Apache用户(通常是`www-data`或`apache`)有足够的权限访问项目...

    SEO源码-搜索引擎泛解析源码

    它涉及到域名解析技术,当用户输入一个不存在的子域名时,服务器会返回一个预先设定好的页面,通常是主页或者其他有关键词优化的页面。这种方式可以增加网站的入口点,理论上可以提升搜索引擎对网站的抓取频率和覆盖...

    apache+tomcat的配置文件,实现多域名解析

    apache+tomcat的配置文件,实现多域名解析,让你了解企业级的配置

    apache 二级域名解析实现方法

    ### Apache二级域名解析实现方法详解 #### 一、前言 在互联网应用中,二级域名是一种常见的需求场景,尤其对于大型网站来说,合理利用二级域名能够更好地组织网站内容,提高用户体验,同时也便于SEO优化。Apache...

    百度知道泛解析无限二级域名

    然而,这需要谨慎操作,因为搜索引擎如百度可能对过度使用泛解析和站群策略进行惩罚,认为这是操纵搜索结果的行为。 压缩包中的文件名列表揭示了可能用于搭建此类站群系统的组件: 1. Rewrite.dll:这可能与URL...

    apache 二级域名解析 (window与linux)

    总结一下,Apache 二级域名解析在Windows和Linux上主要的区别在于Windows使用主机文件,而Linux则利用Apache的`mod_rewrite`模块配合`vhost.map`文件来实现。这种方法允许灵活地管理和配置多个二级域名,而无需改动...

    php域名解析信息查询网页版小工具 v2.0

    php域名解析信息查询工具网页版可查域名解析的IP,以及A、CNAME、MX、NS、TXT、AAAA、SRV等解析记录。是网站站长及用到域名的技术员必备的实用小工具,通过访问网址快速使用。推荐linux平台php5.4-5.6 环境使用本源码...

    Apache实现本地建立泛域名虚拟主机的方法

    本文讲述了Apache实现本地建立泛域名虚拟主机的...重启Apache,就可以在本地同时使用auciou.com和xxx.auciou.com在本地访问,xxx为任意的二级域名,实现了泛域名解析。用此方法,也可以在本地建立多个不同域名的泛域名

    apache虚拟主机中设置泛域名解析的方法

    在Apache中,实现泛域名解析是通过配置文件(通常为httpd.conf或sites-available目录下的vhost文件)中的`ServerName`和`ServerAlias`指令来完成的。这种方法对于拥有多个子域名或者需要提供广泛服务的网站尤其有用...

    Apache动态域名+JK+Tomcat添加Tomcat系统服务 集群

    #### 一、Apache结合动态域名解析软件实现动态域名访问 本节主要讲解如何利用Apache结合动态域名解析软件(如gnhost)来实现动态域名访问。这一步骤是整个集群配置的基础。 ##### 1. 安装Apache2.2.4 **步骤一:...

    httpd基于端口的域名解析

    ### httpd基于端口的域名解析 #### 一、引言 在互联网世界里,HTTP服务器扮演着极其重要的角色,负责处理来自客户端的请求并发送响应。Apache HTTP Server(简称httpd)作为最广泛使用的Web服务器之一,支持多种...

    最简单快速的Apache二级域名实现方法介绍

    首先,你需要确保你的顶级域名(如 `domain.com`)已经进行了泛域名解析。泛域名解析意味着任何子域名(如 `www`, `bbs`, `anyname`)都将指向同一IP地址。这通常在你的DNS管理面板中完成,设置`*`为A记录指向你的...

    雅库依免费二级域名管理系统

    功能:通过Dnspod提供的开放API实现二级域名DNS解析功能,通过域名泛解析实现转发功能。 特点: 1.系统可做为单独的一个站点,也可以做为一个子站安装。应用在smarty上的oop设计便于修改网站前台和后台界面风格。 2...

Global site tag (gtag.js) - Google Analytics