首页 | 站长技术 专题 | 下载频道 | 网页模板 | 图片素材 | 虚拟主机 | 项目市场 | 源码市场 | 本站产品 | 广告服务 | 建站论坛
文档首页
建站指南
网站编程
网站设计
图像动画
网络安全
服务器技术
数据库技术
技术专题
技术问答
您的位置:中国建站 > 站长技术 > 服务器技术 > Web服务器 > Apache虚拟主机的配置

Apache虚拟主机的配置

加入时间:2007-08-22

一、使用 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

<Directory /www/hosts>

 

# ExecCGI is needed here because we can't force

# CGI execution in the way that ScriptAlias does

 

Options FollowSymLinks ExecCGI

</Directory>

 

# 接下来是关键部分

 

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

上一篇文章:Win2003上JSP虚拟主机环境的架设
下一篇文章:Insert和Rs.Addnew的比较
返回上页】 
 

本站在线服务QQ  程序定制:70632246 广告受理/投搞/投诉:7606208 技术客服:3828351
网站简介 广告服务 成功案例 联系方式 办公电话:0580-3825369
Copyright © 2001-2007 JZ173.COM,All rights reserved  浙ICP备05023962号 感谢【中国商务网】提供服务器