Java,Jsp,模式及框架
Web技术
Web服务器
浏览器相关
SQL语言
数据库
开发环境
软件开发及管理
网站SEO
短信及邮件服务
网页设计
电脑、硬件及网络
协同管理平台问题
电子商务
前沿技术及趋势
  当前位置:首页 - 知识积累 - Web服务器
apache重写规则导致ie6下压缩文件打不开问题解决
时间:2010年10月19日 

apache动态二级域名解析可实现无需重启apache服务器,即完成二级域名的自动转向功能,可实现的方式有如下两种,但是前提是开启rewrite module 即将LoadModule rewrite_module modules/mod_rewrite.so 前面的“#”去掉。

方式一如下:

    rewriteengine on
    rewritecond %{HTTP_HOST} [^.]+\.a\.com$
    rewriterule ^(.+) %{HTTP_HOST}$1 [C]
    rewriterule ([^.]+)\.a\.com(.*) /$1$2

这样像访问

http://linda.a.com 就会自动转向/linda文件夹下

http://tom.a.com 就会自动转向/tom文件夹下

等等

然而这样设置解析后,导致在IE6下压缩文件无法打开的问题,将rewritecond %{HTTP_HOST} [^.]+\.a\.com$这句去掉后,就解决了此问题。

方式二如下:

    RewriteEngine      on

    RewriteLogLevel    0
    RewriteMap         lowercase int:tolower
    RewriteMap         vhost txt:C:/Apache2.2/conf/vhost.map
    RewriteCond        ${lowercase:%{HTTP_HOST}|NONE} ^(.+)$
    RewriteCond        ${vhost:%1} ^(d:/.*)$

    RewriteRule        ^/(.*)$ %1/$1 [E=VHOST:${lowercase:%{HTTP_HOST}|NONE}]

这种方式采用在配置文件夹下,增加vhost.map文件的方式完成动态域名的解析。只要增加vhost.map中的记录,无需重启服务器,即可完成网站域名到文件夹的转向。vhost.map的形式如下:

   linda.a.com d:/linda

   tom.a.com d:/tom

  等等

然而采用上面的方式同样导致在IE6下压缩文件无法打开的问题,解决此问题的方法如下:

将后三句修改为

   RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
   RewriteCond ${vhost:%1} ^(d:/.*)$
   RewriteRule ^/(.*)$ %1/$1

即可解决问题