admin 管理员组文章数量: 887021
2024年1月24日发(作者:onmousemove与onmouseover区别)
用ISAPI_Rewrite实现asp的静态化
ASP网站程序在国内运用很广,但是类似于?id=1这样的URL有点不利于搜索引擎的收录,也就是说不符合友好URL(URLs-Friendly)的标准,那么我们用ISAPI_Rewrite打造一个Clean
URL。
1.下载ISAPI__Rewrite分精简(Lite)和完全(Full)版.精简版不支持对每个虚拟主机站点进行重写,只能进行全局处理.不过对于有服务器的朋友,精简版也就够啦.精简版下载地
2.安装.msi的文件,和装一般程序一样装就可以了,俺就装在D:ISAPI_Rewrite.
3.接下来一步比较重要哦,看仔细喽.打开Internet 信息服务,右键,web站点属性,电ISAPI筛选器选项卡.添加筛选器,名称自己填,路径自己指定ISAPI_,然后确定.
4.来测试一下.新建一个,里面写上
<%=tring(”inso”)%>
效果就是执行的时候?inso=*浏览器显示*.
5.这一步很重要哦,开始添加rewrite规则.正则,好头痛,幸亏这个例子比较简单.
找到ISAPI_Rewrite目录,把的只读属性去掉,打开编辑.我们要把?inso=im286映射成为这样的类型,需要在里加上这么一行:
RewriteRule /1ting-([0-9,a-z]*).html /?inso=$1,保存.
6.来来来,到浏览器里查看一下效果吧.输入127.0.0.1/?inso=im286和127.0.0.1/,显示的内容是不是都是im286?这就证明成功啦!
嘿嘿,这样的页面要比?inso=im286容易收入,所以现在还在用动态方式的朋友可以尝试一下这样的静态映射效果. IIS Rewrite也可以实现这样的功能。
下面是一个范例:
#规则以下======================================================
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
#栏目导航
RewriteRule ^/Article-Class([0-9]+)$ /Article/?ID=$1 [L]
RewriteRule ^/Photo-Class([0-9]+)$ /Photo/?ID=$1 [L]
RewriteRule ^/DownLoad-Class([0-9]+)$ /Photo/?ID=$1 [L]
#内容连接
RewriteRule ^/Article([0-9]+)$ /Article/?ID=$1 [L]
RewriteRule ^/Photo([0-9]+)$ /Photo/?ID=$1 [L]
RewriteRule ^/DownLoad([0-9]+)$ /DownLoad/?ID=$1 [L]
#栏目分页
RewriteRule ^/Article-Class([0-9]+)_([0-9]+)$ /Article/?ID=$1&page=$2 [L]
#结束
ASP之URL重写下载ISAPI_Rewrite解压到任意文件夹安装,给IIS用户读取权限,在IIS右键点击一个站点,属性,ISAPI筛选器,添加,筛选器名称一定得叫 re,可执行文件就点浏览找到你解压的目录加上即可。 重启IIS后应该就能支持URL重写规则了。
需要修改解压目录中的这个文件
RewriteRule /info_(d+).htm /?id=$1 [N,I] (#要重写的路径 (d+) 就是任意整型 $1 就是要代替的第一个参数)
这句话就可以把提交的地址/info_映射到真正的地址
/?id=122
如果你在处理数据翻页,那么写法是:
More_<%=Page%>_<%=type%>.html (注:page是翻页页数,type是数据类型)
表现形式:More_1_
如果翻下一页,则为:More_2_,继续下一页的循环,则是:
More_3_,以此类推。
不过你需要在文件中增加以下代码:
RewriteRule /More_(d+)_(d+).html /jsp/?page=$1&type=$2
[N,I]
如果你的动态程序有多个参数需要传递,那么就增加多个(d+)即可,如下:
RewriteRule /More_(d+)_(d+)_(d+).html /jsp/?page=$1&type=$2&type2=$3
[N,I]
翻页处理表现形式是:More_1_
如果想把/?id=50#abc 转换成静态的网页
因为#abc是程序处理了ID=50这个变量生成静态页面之后按锚点又做了一次页内链接,所以应该这么做映射
/?id=50#abc转换成/info_#abc,重写规则如下:
RewriteRule /info_(d+).htm#(d+) /?id=$1#$2 [N,I]
注意:以前在Window 2000 IIS5.0一直使用ISAPI_Rewrite进行动态链接重写HTML静态网址,
最近升级到 Widnows 2003 IIS6.0 后,发现ISAPI_Rewrite根本运行不起来,在IIS 6.0里面一直提示“未加载”,后来查了又查,原来是文件的权限问题。
IIS 6.0 ISAPI_Rewrite 是在Service帐号下运行的,将数据文件的读写权限给予Service 帐号后,ISAPI_Rewrite 终于可以正常运行了。
本篇介绍通过组件如ISAPI_Rewrite实现URL重写。
对IIS服务器的网站进行UrlRewrite设置的步骤如下:
1.下载ISAPI ReWrite,百度一下就可以找到了;
2. 解压,解压后会有、、、四个文件,我们要用到的只有和两个文件,其它两个也放着,别删了;
3. 把添加到IIS上去:管理工具-》Internet信息服务-》选择要添加的虚拟目录-》点击鼠标右键-》选择“属性”-》点击 “ISAPI筛先器”-》点击“添加”-》填入筛选器名称如“rewrite”-》可执行文件下方点击“浏览”,选择刚才解压的Rewrite组件位置 -》确认选择正确后,点击“确定”-》点击“确定”,完成筛选器添加-》再次选择站点,右键,属性,看到向上的绿箭头,说明 IIS Rewrite 成功添加并运行。
4. 编辑文件:
如果要将localhost/news/?id=123 用URL重写成localhost/news/news_,就要在文件中添加
RewriteRule 重写规则。
#—————– 文件内容———–
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule /client/news_(d+)+.html /client/?id=$1
#—————– 文件内容结束———–
5. 最后要在asp网页上把超级链接改过来,
以前这样的:“><%=NewsRS("AR_TITLE")%>
要改为:.html”><%=NewsRS("AR_TITLE")%>
注意:
1.使用URlRewrite不能开启网站自定义404错误,否则 UrlRewrite将无法正常工作;
2.重写时一定要注意文件的路径。
UrlRewrite 常见错误
1. 404错误(页面无法找到):没有网站根目录建立 文件 或者 正则表达式 错误,都会导致 页面无法找到错误
2. 500错误(脚本程序错误): 目标动态页面程序错误
3. 404用户自定义错误: 如果网站管理员开启了404 网站自定义错误,urlrewrite将无法正常工作.
版权声明:本文标题:用ISAPI_Rewrite实现asp的静态化 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1706051041h499769.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论