RSS
热门关键字:  ASP.NET  ASP  ASP.NET文件  ASP.NET 漫  html
当前位置 :| hh85>网络频道>服务器>Apache>

Apache虚拟主机的配置方法

来源: 作者: 时间:2008-03-20 点击:
一、使用 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/

# 允许 cgi(现在已经不多人在用了)s 中
RewriteCond %{REQUEST_URI} !^/cgi(现在已经不多人在用了)-bin/

# 开始“变戏法”
RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1

## 现在处理 cgi(现在已经不多人在用了)s - 我们需要强制使用一个 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配置ASP.NET的环境的方法
下一篇:没有了
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
栏目列表