Asp伪静态的实现及URL重写-1.下载ISAPI_Rewrite.ISAPI_Rewrite分精简(Lite)和完全(Full)版.精简版不支持对每个虚拟主机站点进行重写,只能进行全局处理.不过对于有服务器的朋...

海南网站建设,网页设计
记忆工作中的点滴
首页>> Asp技术 >>Asp伪静态的实现及URL重写
2017-08-23
分类: Asp技术

Asp伪静态的实现及URL重写

文章作者:魚兒
手机扫码查看

1.下载ISAPI_Rewrite.ISAPI_Rewrite分精简(Lite)和完全(Full)版.精简版不支持对每个虚拟主机站点进行重写,只能进行全局处理.不过对于有服务器的朋友,精简版也就够啦.......

1.下载ISAPI_Rewrite.ISAPI_Rewrite分精简(Lite)和完全(Full)版.精简版不支持对每个虚拟主机站点进行重写,只能进行全局处理.不过对于有服务器的朋友,精简版也就够啦.精简版下载地址:http://www.helicontech.com/download/,就是那Lite Version (free)啦.

2.安装.msi的文件,和装一般程序一样装就可以了,可以改变安装地址。不过后边会用到。需注意一下。我默认安装在C盘:

点击查看原图

3.打开Internet 信息服务,右键,web站点属性,电ISAPI筛选器选项卡.添加筛选器,名称自己填,路径自己指定ISAPI_Rewrite.dll,然后确定.(因为我的是默认。所以在C:\Program Files\Helicon\ISAPI_Rewrite\ISAPI_Rewrite.dll)

点击查看原图

4.来测试一下.新建一个NewTest.Asp,里面写上

<%=Request.querystring("Test")%>
点击查看原图

5.开始添加Rewrite规则.正则,找到ISAPI_Rewrite目录,把httpd.ini的只读属性去掉,打开编辑.把NewTest.Asp?Test=123映射成为NewTest-123.html这样的类型,需要在httpd.ini里加上这么一行:

RewriteRule /NewTest-([0-9,a-z]*).html /NewTest.asp\?Test=$1
[ISAPI_Rewrite]

# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32

# Protect httpd.ini and httpd.parse.errors files

# from accessing through HTTP

RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]

RewriteRule /NewTest-([0-9,a-z]*).html /NewTest.asp\?Test=$1

6.到浏览器里查看一下效果.输入http://localhost/NewTest.Asp?Test=abc123和http://localhost/NewTest-abc123.html,显示的内容都是abc123?这就证明成功啦!

点击查看原图

NewTest-abc123.html这样的页面要比NewTest.asp?test=abc123容易收入,所以现在还在用动态方式的朋友可以尝试一下这样的静态映射效果. IIS Rewrite也可以实现这样的功能。

------------------------------------------------------------------------

ASP之URL重写

  下载ISAPI_Rewrite解压到任意文件夹安装,给IIS用户读取权限,在IIS右键点击一个站点,属性,ISAPI筛选器,添加,筛选器名称随便起一个,可执行文件就点浏览找到你解压的目录Rewrite.dll加上即可。

  重启IIS后应该就能支持URL重写规则了。

  需要修改解压目录中的httpd.ini这个文件

  RewriteRule /show_(\d+)\.htm /show\.asp\?uID=$1 [N,I]

  这句话就可以把提交的地址http://www.xxx.com/show_122.htm映射到真正的地址 http://www.xxx.com/show.asp?uID=122

  如果你在处理数据翻页,那么写法是:

  More_<%=Page%>_<%=type%>.html (注:page是翻页页数,type是数据类型)
  表现形式:More_1_95.html

  如果翻下一页,则为:More_2_95.html,继续下一页的循环,则是:
  More_3_95.html,以此类推。

  不过你需要在httpd.ini文件中增加以下代码:
  RewriteRule /More_(\d+)_(\d+)\.html /more\.asp\?page=$1&type=$2 [N,I]

  如果你的动态程序有多个参数需要传递,那么就增加多个(\d+)即可,如下:

  RewriteRule /More_(\d+)_(\d+)_(\d+)\.html /jsp/more\.jsp\?page=$1&type=$2&type2=$3 [N,I]

  翻页处理表现形式是:More_1_95.html

  如果想把http://www.xxx.com/show.asp?uID=50#

  abc 转换成静态的网页
  因为#abc是程序处理了ID=50这个变量生成静态页面之后按锚点又做了一次页内链接,所以应该这么做映射
  http://www.xxx.com/show.asp?uID=50#abc转换成http://www.xxx.com/show_50.htm#abc,重写规则如下:
  RewriteRule /show_(\d+)\.htm#(\d+) /show\.asp\?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 终于可以正常运行了。


×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

打赏作者
版权所有,转载注意明处:不懂戀愛魚兒 » Asp伪静态的实现及URL重写
标签: asp API rewrite 伪静态

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(2)

学习一下。测试成功。还不错
小道 5年前 (2013-11-16) 回复
学习一下
飞鸽 8年前 (2010-11-24) 回复