zoukankan      html  css  js  c++  java
  • ISAPI_Rewrite规则实践(转)

    最近刚刚做完一个网站,http://www.pepipe.cn/,闲着没事就想把网页静态化,

    网站静态化有两种方案:

    1,由后台程序生产HTML页面,现在很多CMS都具有这样的功能,不过就是感觉比较麻烦,每次更新完都要生成一次,要事内容多的话那就真的比较痛苦,要等的时间长不说,万一空间商说你运行的程序占用了大量的资源给你关闭了,那就真的比较郁闷了,所以这样的方法不想用,而且如果是自己写的程序的话还要写一个静态页面生成系统,偶水平有限,所以这种方法就不予考虑了。

    2,ISAPI_Rewrite生成伪静态方案,个人觉得这个方案还是比较容易实现,不过就是很多站长都是资金有限,用的都是虚拟主机,虚拟主机支持伪静态的还是比较少,所以关键要找到一家能够支持伪静态的虚拟主机服务商,好像西部数据的就支持这样的,而且ISAPI_Rewrite规则都可以自己在后台定义,很方便,还有就是92合租的也支持。

    下面就谈谈偶的网站的伪静态进程:

    早就在淘宝网站买了一个空间,很便宜,1G才七十多块,还有就是服务商答应给我装ISAPI_Rewrite组建,规则我写好了给他们,他们帮我加进去。

    http://www.pepipe.cn/网站其实很简单,只有三个地方需要静态化,就是一个是主页,一个是留言板还有一个就是行业动态,主页本来是想做成html的,但是要调用数据库里的一些数据,没办法只好做成了asp的,不过没关系偶可以伪静态,呵呵,真是好啊。

    第一步 下载ISAPI_Rewrite组建,这个网上大把,随便一搜索就出来了。ISAPI_Rewrite分精简(Lite)和完全(Full)版.精简版不支持对每个虚拟主机站点进行重写,只能进行全局处理.不过对于有服务器的朋友,精简版也就够啦.精简版下载地址:http://www.helicontech.com/download/,就是那Lite Version (free)啦。安装.msi的文件,和装一般程序一样装就可以了,偶就装在D:\ISAPI_Rewrite.

    接下来一步比较重要了,打开Internet 信息服务,右键,web站点属性,点ISAPI筛选器选项卡,添加筛选器,名称自己填,路径自己指定ISAPI_Rewrite.dll,然后确定。

    到此,ISAPI_Rewrite组建就安装好了,接下来就要写规则了。


    下面就以 news.asp 为例。

    news.asp是读取新闻列表,shownews.asp是读取新闻的内容。

    news.asp规则:

    RewriteRule /news.html /news.asp
    RewriteRule /pe-news-([0-9,a-z]*).html /shownews.asp\?id=$1
    RewriteRule /news_([0-9,a-z]*).html /news.asp\?page=$1

    第一句就是把对news.html的访问映射到news.asp上面

    第二句就是把对pe-news-19.html访问映射到到shownews.asp?id=19上面

    第三句就是把对news_2.html的访问映射到news.asp?page=2上面

    news.asp代码修改:原来是:

    <a href="shownews.asp?id=<%= rs("id") %>" target="_blank"><%= rs("title") %> </a>

    修改链接后变成:

    <a href="pe-news-<%= rs("id") %>.html" target="_blank"><%= rs("title") %> </a>

    翻页代码也是一样的修改链接部分:

    修改前:

    <%
       response.Write"当前有"&rs.recordcount&"条记录"
       if page =1 then
        response.Write"首页 前页 "
    else
    response.Write"<a href=news.asp?page=1>首页</a> <a href=news.asp?page="&page-1&">前页</a> "
       end if
       if page =allpages then
       response.Write"下页 末页"
       else
    response.Write"<a href=news.asp?page="&page+1&">下页</a> "
    response.Write"<a href=news.asp?page="&allpages&">末页</a>"
    end if
    response.Write" 第"&page&"页 共"&allpages&"页 "

        %>

    修改后:

    <%
       response.Write"当前有"&rs.recordcount&"条记录"
       if page =1 then
        response.Write"首页 前页 "
    else
    %>
    <a href=news_1.html>首页</a> <a href=news_<%= page-1 %>.html >前页</a>
       <%
    end if
       if page =allpages then
       response.Write"下页 末页"
       else
       %>
    <a href=news_<%= page+1 %>.html>下页</a> <a href=news_<%=allpages%>.html >末页</a>

    <%
    end if
    response.Write" 第"&page&"页 共"&allpages&"页 "

        %>

    注意红色部分的区别,这就是主要的地方,修改后的链接要符合你的伪静态规则。

    例子请看:www.pepipe.cn/news.htmlwww.pepipe.cn/news.asp

    www.pepipe.cn/pe-news-19.htmlwww.pepipe.cn/shownews.asp?id=19

    www.pepipe.cn/news.asp?page=2www.pepipe.cn/news_2.html

    两种效果是一样的

    index.asp和guest.asp这两个文件修改和规则都跟上面类似,就不再说了。整个规则就是下面的:

    # PEPIPE.CN伪静态规则
    RewriteRule /pe-news-([0-9,a-z]*).html /shownews.asp\?id=$1
    RewriteRule /news_([0-9,a-z]*).html /news.asp\?page=$1
    RewriteRule /guest_([0-9,a-z]*).html /guest.asp\?page=$1
    RewriteRule /index.html /index.asp
    RewriteRule /guest.html /guest.asp
    RewriteRule /news.html /news.asp

    找到ISAPI_Rewrite安装目录下的http.ini文件去掉只读属性,把上面的代码加进去就OK啦。

    偶也是菜鸟,希望能抛砖引玉,呵呵。

  • 相关阅读:
    图-拓扑排序
    图-最短路径-Dijkstra及其变种
    【链表问题】打卡7:将单向链表按某值划分成左边小,中间相等,右边大的形式
    【链表问题】打卡5:环形单链表约瑟夫问题
    【链表问题】打卡6:三种方法带你优雅判断回文链表
    【链表问题】打卡4:如何优雅着反转单链表
    【链表问题】打卡3:删除单链表的中间节点
    【链表问题】打卡2:删除单链表的第 K个节点
    史上最全面试题汇总,没有之一,不接受反驳
    一些可以让你装逼的算法技巧总结
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/1505944.html
Copyright © 2011-2022 走看看