在线技术支持 - 文档下载 - 如何付款 - 联系方式 - 帮助中心  
服务中心
域名转入59互联全攻略
媒体看59
行业热点面面观
帮助中心
当前位置:首页 - 服务中心 - 服务器学院 - 正文
Apache虚拟主机的配置
文章来源:本站原创   文章类型:服务器学院    点击数:7964    更新时间:10-08-23


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

 
上一篇文章: Insert和Rs.Addnew的比较
下一篇文章: Apache连接数设置
郑州技术支持:0371 - 88888361   域名直线电话 65651185    备案直线电话 65651189    传真:0371-88888360-777
运营商:郑州易方科贸有限公司 世纪创联  ISP:豫B2-20060062-6 豫ICP证:豫B2-20050016  IDC:b1-20183355
总部地址:河南省郑州市农业路政七街省汇中心A2004  
声明:59互联品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究。  法律顾问:国基律师事务所代全喜律师
ICP备案:豫ICP备05000583号 营业执照 注册号:4101002210318 中国电子商务诚信单位 网警备案单位 互联网协会成员 ISO9001认证企业 ISP、ICP证书 公司营业执照