`
beyondhjjyt
  • 浏览: 39837 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Apache对域名的泛解析方法集锦

 
阅读更多
在apache下建立多个站点 
在httpd.conf中使用如下内容 

NameVirtualHost 211.161.197.119 

<VirtualHost 211.161.197.119> 
     ServerName bug.54ncr.com 
     DocumentRoot /www/http/mantisbt 
</VirtualHost> 
<VirtualHost 211.161.197.119> 
     ServerName mycity.54ncr.com 
     DocumentRoot /www/http/billing_system 
</VirtualHost>
=================================================================

ServerAlias:服务器别名,在Apache中可以用于设置虚拟主机接收到个域名,也可以用于接收泛解析的域名。具体的设置方法如下:

一、用于设置虚拟主机接收多个域名

一个虚拟主机常常会接收多个域名解析,比如:一个虚拟主机要同时介绍fke.la,54ncr.com两个域名,或者是两个二级域名,如:www.fke.la, www1.fke.la,对于这种情况,可以在用ServerAlias轻松做到,打开apache的设置文件:httpd.conf,在该主 机的设置代码中:

<VirtualHost 192.168.1.12>

ServerName “fke.la” #默认域名;

ServerAlias 54ncr.com www1.fke.la #不同域名用空格隔开;

DocumentRoot “D:\wwwroot\fke.la

<Directory “D:\wwwroot\fke.la”>

Options Indexes FollowSymLinks

AllowOverride all

</Directory>

</VirtualHost>

保存httpd.conf文件,重启apche即可生效。

二、 用于接收泛域名解析

一个虚拟主机是可以接收泛域名解析的,也是通过SeverAlias选项设置,通过设置该选项不仅可以接收二级泛域名解析,也可以接收三级、四级泛 域名解析,具体设置如下:

<VirtualHost 192.168.1.12>

ServerName “fke.la” #默认域名;

ServerAlias *.fke.la #用*表示泛域名,如果要接收三级泛域名解析,可以写成这样:*.my.fke.la;

DocumentRoot “D:\wwwroot\fke.la”

<Directory “D:\wwwroot\fke.la”>

Options Indexes FollowSymLinks

AllowOverride all

</Directory>

</VirtualHost>

保存httpd.conf文件,重启apche即可生效。


=================================================================
在DNS服务器上添加一条A记录。其中,“主机名”填写“*” ,“指向”填写为自己网站的服务器IP。这样所有
*.yourdomain.cn 都指向自己网站的服务器IP 所以不管你申请什么名字,如:dlzok.yourdomain.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+
来实现泛解析,不过不管什么二级域名都被解析到根目录了,也就是说
*.yourdomain.com 会被指向 /www/yourdomain.com
为了解决这个问题,可以用
VirtualDocumentRoot /www/%2+/%0
来实现二级域名分目录,即
www.yourdomain.com 会被指向 /www/yourdomain.com/www.yourdomain.com
test1.yourdomain.com 会被指向 /www/yourdomain.com/test1.yourdomain.com
test2.yourdomain.com 会被指向 /www/yourdomain.com/test2.yourdomain.com
有点不足,这样,www.yourdomain.com 也需要在yourdomain.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环境多域名配置

    本文将详细介绍如何在Linux环境下,基于Apache Web服务器实现多域名配置的方法。 #### 二、环境准备与基础配置 **1. 系统与软件版本** - **Linux系统版本**:Red Hat 4.8.5 - **PHP版本**:7.0 - **Apache版本**...

    apache 二级域名解析实现方法

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

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

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

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

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

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

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

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

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

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

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

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

    在IT行业中,"百度知道泛解析无限二级域名"是一个关于网站建设和搜索引擎优化(SEO)的话题。这个主题涉及到如何利用特定的技术手段,使一个网站能够通过泛解析生成无数个二级域名,以此来构建一个站群系统。站群...

    PHP版站群 全自动泛解析站群程序 赠送教程_PHP泛站_站群_

    泛解析通常涉及到对域名进行多种组合,例如使用星号(*)作为通配符,创建如www.example.com/*这样的模式,使得任何输入到星号位置的字符串都能映射到实际的页面。 "全自动"特性意味着该程序可以自动处理网站的创建...

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

    在Windows和Linux操作系统上设置二级域名解析的方法略有不同,但基本原理相同。 在Windows环境下,主要依赖于主机文件(`hosts` 文件)进行解析。在WinXP系统中,你需要编辑 `C:\Windows\System32\drivers\etc\...

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

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

    httpd基于端口的域名解析

    本文将详细介绍httpd基于端口的域名解析的基本原理、配置步骤及验证方法。 #### 二、基本概念与原理 **1. 基本概念** - **HTTPD (Apache HTTP Server)**:一款免费开放源码的Web服务运行平台,在使用过程中,用户...

    apache服务器的各种配置方法

    该资源是我最近给某大公司开发集团官网的过程中总结的apache服务器配置方法,涉及知识如下,希望能帮助到大家: 1、配置网站默认发布路径。 2、让apache支持shtml文件,实现include文件解析。 3、添加默认文档index....

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

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

Global site tag (gtag.js) - Google Analytics