在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域名泛解析
LINUX ASP Apache多域名解析(这个有用之人下吧,挺经典的。)
apache的使用以及详细解释,详细翻译apache的解释翻译
apache泛域名解析及dns相关,供大家学习参考
apache+tomcat的配置文件,实现多域名解析,让你了解企业级的配置
本文讲述了Apache实现本地建立泛域名虚拟主机的...重启Apache,就可以在本地同时使用auciou.com和xxx.auciou.com在本地访问,xxx为任意的二级域名,实现了泛域名解析。用此方法,也可以在本地建立多个不同域名的泛域名
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容
apache 二级域名解析 window与linux下使用的方法。
php域名解析信息查询工具网页版可查域名解析的IP,以及A、CNAME、MX、NS、TXT、AAAA、SRV等解析记录。是网站站长及用到域名的技术员必备的实用小工具,通过访问网址快速使用。推荐linux平台php5.4-5.6 环境使用本源码...
apache虚拟主机中设置泛域名解析,主要是用到ServerAlias 的配置,供大家学习参考
该资源是我最近给某大公司开发集团官网的过程中总结的apache服务器配置方法,涉及知识如下,希望能帮助到大家: 1、配置网站默认发布路径。 2、让apache支持shtml文件,实现include文件解析。 3、添加默认文档index....
功能:通过Dnspod提供的开放API实现二级域名DNS解析功能,通过域名泛解析实现转发功能。 特点: 1.系统可做为单独的一个站点,也可以做为一个子站安装。应用在smarty上的oop设计便于修改网站前台和后台界面风格。 2...
本文实例讲述了Linux环境下Apache服务器配置二级域名的方法。分享给大家供大家参考,具体如下: (以域名www.csdn.net为例,现在需要配置一个二级域名blog.csdn.net指向主机地址) 首先,确认开启Apache配置文件...
Apache虚拟主机的配置和泛域名解析实现代码,需要的朋友可以参考下
本例主要实现在CI框架中像ThinkPHP一样的二级域名解析方式 1. ci_url_rewirte.php 为实现的代码 可将其插入到system/URI.php 即框架URI类的相应地方 2. URI.php 为我实验版本(Version 1.0)的URI类,其他版本应用...
可查域名解析的IP,以及A、CNAME、MX、NS、TXT、AAAA、SRV等解析记录。 是网站站长及用到域名的技术员必备的实用小工具。 推荐linux平台php5.4-5.6 环境使用本源码,本人在windows下ngnix apache下也正常使用。
但是,如果通过主机IP能直接访问某网站,那么随便一个域名解析到这个IP也将能访问到该网站,而无需在主机上绑定,也就是说任何人将任何域名解析到这个IP就能访问到这个网站。 可能你并不介意通过别人的域名访问到您...