网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 手机学院 | 邮件系统 | 网络安全 | 认证考试
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.关于recordcount等-1的问题.
.提高IIS的安全性.
.ASP技术在论坛中的运用(八)(吐血.
.ASP中文本文件与数据库文件的数据.
.ServerVariables 对路径的操作.
.Microsoft IIS 真的如此「不安全.
.用err.raise自定义错误信息.
.Server Application Error详细解.
.ASP对FoxPro自由表(DBF文件)的操.
.ASP生成XBM图可用作验证码.
.在IIS中用ISAPI_Rewrite Lite版配.
.一个比较实用的asp函数集合类 .
.使用ASP重启服务器.
.asp+sqlserver 分页方法(不用存.
.加密页面代码生成器.
.身份验证常用正则表达式 .
.在ASP中通过oo4o连接Oracle数据库.
.如何用asp把sqlserver数据转换为.
.ASP开发网页时需要牢记的注意事项.
.ASP动态生成的javascript表单验证.

在IIS中用ISAPI_Rewrite Lite版配置虚拟主机支持二级域名

发表日期:2008-12-11

为二级域名的问题搞了2天,狂郁闷。。。。先是用程序,感觉太累赘,简单的又不好使(用iframe嵌入,比较糟糕,不能像真正的域名一样访问),后来发觉URL Rewrite是最简单的解决办法……搜IIS用的Rewrite,下载、试用……,查资料、看说明——唉,E文不好,走了不少弯路!莫笑(地处偏僻,身边难见高人)

如果是用Apache就简单多了,默认的Rewrite模块功能强大,可以轻松提取主机头信息。

具体内容:

0、首先需要一个有效的顶级域名,并且设置该域名下二级域名的泛解析到虚拟主机所在服务器IP(即如:*.eboat.cn => 123.234.55.101)。

1、在http://www.helicontech.com/download.htm下载ISAPI_Rewrite Lite Free版本。版本不用太高,如果愿意付点$,用Full版当然也不错哦。安装,随便装在哪个位置。

注意:Lite版本不支持虚拟主机层次的配置,但仅仅是配置(就是dll只能读取自身安装目录下的全局配置httpd.ini)。如果是仅用于某虚拟主机的任意二级域名解析,可以将ISAPI_Rewrite.dll仅放置在该虚拟主机的配置中(即不在IIS的“网站>ISAPI筛选器”中插入,而是添加在虚拟主机网站的ISAPI筛选器中),这样就不会影响服务器对其它网站的处理。

2、将需要二级域名的虚拟主机的主机头置空,使得所有未在服务器上单独配置的虚拟主机域名都被定向到此处。注意!不是在服务器上单独新建一个无主机头的网站,必须在需要实现二级域名的当前网站上进行URL的Rewrite配置。这点很重要。

3、将ISAPI_Rewrite安装时自动配置在IIS中的全局设定取消(IIS>网站>ISAPI筛选器,删除ISAPI_Rewrite),在需要二级域名解析的虚拟主机(网站)中配置ISAPI_Rewrite.dll(属性>ISAPI筛选器>添加...,名称可以随便写,如Url-Rewrite)。

4、修改ISAPI_Rewrite安装目录下的配置文件httpd.ini。举例如下:
Java代码
[ISAPI_Rewrite]  
RepeatLimit 1 
# Defend your computer from some worm attacks  
RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]  
 
# 排除当前虚拟主机需要正常访问的域名(web.eboat.cn www.eboat.cn)  
# RewriteCond Host:  (?:web|www)\.eboat\.cn  
# 多数情况下是一个,即当前提供二级域名服务的系统(如建站系统)  
RewriteCond Host:  web\.eboat\.cn  
RewriteRule (.*)   $1  [L]  
 
# 解决不规范目录(末尾无/)的问题  
# 但前提是目录名不含‘.’而文件名必须包含,否则无法区分两者  
# 如果保证URL中的目录名称规范,则无需此规则  
RewriteRule ^/([^.]+[^/]$)  /$1/  [L,R]  
 
# 提取任意的二级域名名称(即第一个词汇)  
# 用[a-zA-Z0-9_-]限制名称字符,重写Url到Home/子目录下  
# 如 test.eboat.cn => web.eboat.cn/Home/test  
RewriteCond Host:  ([a-zA-Z0-9_-]+)\.eboat\.cn  
RewriteRule ^/(.*)  /Home/$1/$2  [I,L] 

[ISAPI_Rewrite]
RepeatLimit 1
# Defend your computer from some worm attacks
RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]

# 排除当前虚拟主机需要正常访问的域名(web.eboat.cn www.eboat.cn
# RewriteCond Host:  (?:web|www)\.eboat\.cn
# 多数情况下是一个,即当前提供二级域名服务的系统(如建站系统)
RewriteCond Host:  web\.eboat\.cn
RewriteRule (.*)   $1  [L]

# 解决不规范目录(末尾无/)的问题
# 但前提是目录名不含‘.’而文件名必须包含,否则无法区分两者
# 如果保证URL中的目录名称规范,则无需此规则
RewriteRule ^/([^.]+[^/]$)  /$1/  [L,R]

# 提取任意的二级域名名称(即第一个词汇)
# 用[a-zA-Z0-9_-]限制名称字符,重写Url到Home/子目录下
# 如 test.eboat.cn => web.eboat.cn/Home/test
RewriteCond Host:  ([a-zA-Z0-9_-]+)\.eboat\.cn
RewriteRule ^/(.*)  /Home/$1/$2  [I,L]


注意!上面的规则不能写成
RewriteRule ^/(.*) http\://web\.eboat\.cn/Home/$1/$2 [I,L]

这也是必须在系统所在网站上解析的原因。如果最后是[I,R],访问是可以的,但是浏览器的地址栏会显示实际的Url,达不到透明二级域名的效果。

总结:

之前查了Google,没找到简单实现的例子。其实这主要是规则上的问题,即使是将ISAPI_Rewrite放在IIS的“网站”全局配置中也是可以的,因为规则不会匹配其它的网站(顶级域名限制),Rewrite不会起作用。只是放在全局配置中,访问其它网站也要经过这个.dll过滤器,或多或少的有些不合理。

成功配置和运行,网上说要用Full的破解版才行(1.x的版本,试过可行)。所以这里特地将Lite免费版的用法贴出来。

(注意:最后可能需要重启IIS服务器,检查一下ISAPI过滤器中Rewrite是否已经载入——绿色的向上箭头。另外,如果是NTFS文件系统,ISAPI_Rewrite的安装目录需要添加网站用户或everyone的写权限!)

上一篇:巧用ISAPI_Rewrite规则写IIS防盗链 人气:364
下一篇:正则表达式 大杂烩 人气:439
浏览全部ISAPI_Rewrite Lite的内容 Dreamweaver插件下载 网页广告代码 2009年新年快乐