发表于 2015-07-10 11:26
ISAPI_Rewrite,ISAPI_Rewrite用来实现伪静态,将动态网页通过重写URL的方法实现去掉动态网页的参数!它的行为是像Apache的mod_Rewrite ,但专为微软的Internet信息服务( IIS )。 IIS配置相当简单,配置好之后就有一些细节是需要调试的比如在Apache’s上很有用的.htaccess文件在IIS上就没有,要想实现类似的跳转功能可以使用ISAPI_Rewrite来代替,这是一个专门为IIS设置的工具,目的就是代替.htaccess实现很多功能,其中最常用的就是301转向和伪静态。
准确来说它应该是代替Apache’s上的mod_Rewrite,还不能够完全代替.htaccess所以在语法和使用上有很多要注意的地方。
ISAPI_Rewrite是一个ISAPI筛选器的书面纯的C / C + +所以速度极快。
Windows2003下IIS6.0的伪静态组件安装和伪静态配置方法,还包括常用的伪静态规则使用方法。
1)下载IIS伪静态组件——ISAPI_Rewrite3完全破解版
ISAPI_Rewrite3非常好用,是个人见过最好用同时可以支持多站点的IIS伪静态组件!
1、西西下载(http://www.cr173.com/soft/20857.html);
2
2)安装IIS伪静态组件
1、以下载本网站的破解版为例:将下载的ISAPI_Rewrite3解压,你会看到两个文件(分别是:ISAPI_Rewrite.dll 和httpd.conf);
把整个文件夹解压到安装在C:Program FilesISAPI_Rewrite下;
2、将Rewrite破解文件夹中的ISAPI_Rewrite.dll文件覆盖到程序安装目录下替换即可;
3、打开安装目录下的httpd.conf文件,在里面输入以下内容并保存,这样就没有使用天数的限制了;
RegistrationName= wlqcwin
RegistrationCode= 2EAD-35GH-66NN-ZYBA
4、安装好后记得给ISAPI_Rewrite3软件安装目录network service的读权限(或Users的读权限),否则会出现无法加载ISAPI_Rewrite的错误。
3)IIS伪静态配置方法
我们打开Internet 信息服务(IIS)管理器,找到"网站",右键打开"属性"选项卡;
选择"ISAPI 筛选器"选项卡,点击"添加",弹出"添加/编辑筛选器属性","筛选器名称"写上ISAPI_Rewrite,这个可以自定义;"可执行文件"这里,通 过"浏览"找到伪静态组件安装目录下的ISAPI_Rewrite.dll文件即可,路径是C:Program FilesISAPI_RewriteISAPI_Rewrite.dll;
一路确定之后,我们重启下IIS管理器,之后再次打开网站属性的"ISAPI 筛选器",看下是不是刚刚添加的ISAPI_Rewrite变为绿色向上的箭头呢?这样的话伪静态就配置成功了。
4)IIS伪静态使用方法
IIS伪静态配置成功后,在你的IIS管理器——网站下面,任意建立一个新网站,就可以使用伪静态了。你只需要在新网站根目录下新建立一个.htaccess文件,用记事本打开,在里面写上相应的伪静态规则即可。
5)测试IIS伪静态是否生效
1、在某个单独网站(如:localhost)新建.htaccess文件,并在文件中写上以下规则:
RewriteEngine on
RewriteBase /
RewriteRule ^get-(.*).html /get.asp?id=$1
#说明:RewriteEngin on表示启用重写功能;RewriteBase / 表示重写的路径是从网站根目录开始。
2、在localhost下新建get.asp文件,文件内容以下:
<% response.write("get_id=" & request.querystring("id")) %>
3、在浏览器中分别输入http://localhost/get-123.html 和 http://localhost/get.asp?id=123 ; 如果结果是一样的,则表明重写成功。
至此,如果测试成功,则表示安装配置成功!
IIS6.0配置aspx伪静态教程
1、安装
安装ISAPI_Rewrite3,一路next,默认安装到了服务器的C:\ISAPI_Rewrite3(目录自由设置,但需保证有iis浏览的权限),接着打开IIS-web服务扩张-右键-添加一个新的web服务扩展,扩展名字写ISAPI_Rewrite,要求文件C:\ISAPI_Rewrite3\ISAPI_Rewrite.dll,并且设置为允许。
2、配置IIS
打开iis,右键你的站点属性--ISAPI 筛选器--添加--筛选器名称是ISAPI_Rewrite3 --可执行文件就是ISAPI_Rewrite.dll的路径,比如C:\ISAPI_Rewrite3\ISAPI_Rewrite.dll
给用户网站主机头加上“network service”的读权限,其实就是该用户网站的文件夹的网络读写权限。
安装IIS Rewrite3后,会在全局的网站下 “iis> 网站 》属性> isapi 筛选器”选项里面,删除 isapi_rewrite3这个ISAPI筛选器,必须去掉这个isapi_rewrite3筛选器,否则其它的网站(除首页外)的页面无法访问!
最后重启iis
当然你可以把ISAPI_Rewrite3目录放入站点根目录下,但记得要给一个users和"network service"的读权限。
注意:有些服务器或者vps有做权限的,安装后httpd.conf可能只有everyone和system的权限,如果修改不了文件就添加一个administrator的权限
注意:如果服务器上网站较多,而仅仅要设置其中的一个,重新打开IIS-网站-右键属性-ISAPI筛选器,把里面的ISAPI_Rewrite删除,到需要设置防盗链的网站-右键属性-ISAPI筛选器-添加一个新的筛选,筛选名称ISAPI_Rewrite,可执行文件C:\ISAPI_Rewrite3\ISAPI_Rewrite.dll。这样就仅对一个网站设置伪静态了。
3、设置
开始菜单-所有程序-Helicon-ISAPI_Rewrite3-ISAPI_Rewrite Manager打开,点击edit加入如下规则:
# Helicon ISAPI_Rewrite configuration file
# Version 3.1.0.64
#伪Html部份
RewriteRule /test-(\d*)-(\d*).html /test.aspx\?id=$1&aa=$2
(写法请参照正则表达式)
因为使用的是免费版,所以只能对整个站点进行设置,这个设置将对你服务器上的所有网站生效,如果是正式版的话,将会对所有不同的网站进行单独的设置。
原test.aspx的代码为:
<form method="post" runat="server">
id号为:<%=id%>,name号为<%=name%>
</form>
test.aspx.cs的代码为:
protected int id = 0;
protected int name = 0;
private void Page_Load(object sender, System.EventArgs e) {
if (!Page.IsPostBack) {
try {
id = int.Parse(Request.QueryString["id"].ToString());
}
catch { id = 0; }
try {
name = int.Parse(Request.QueryString["name"].ToString());
}
catch { name = 0; }
}
}
4、测试:
在地址栏输入:http://localhost/test-4-1000.html
网页显示结果为:id号为:4,name为1000
测试通过。
[page]常见规则写法[page]
常见ISAPI_Rewrite规则写法
# 排除当前虚拟主机需要正常访问的域名(web.eboat.cnwww.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.cnwww.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]