您当前的位置是:首页-SEO宝典

实践ISAPI_Rewrite带参数的伪静态规则的书写实例

【发表于】:2010/12/25 12:51:00  已被访问:817次
最近刚刚做完一个网站,www.jiawod.cn,闲着没事就想把网页静态化,
网站静态化方案主要有两种:
1,生成HTML静态页面,现在很多CMS都具有这样的功能,小型系统做生成静态投入和收入不成正比,不作考虑。
2,ISAPI_Rewrite伪静态方案,这个方案还是比较容易实现,不过很多站长都是资金有限,用的都是虚拟主机,虚拟主机支持伪静态的还是比较少,所以关键要找到一家能够支持伪静态的虚拟主机服务商,而且ISAPI_Rewrite规则都可以自己在ftp下上传。下面就谈谈我的网站的伪静态进程:
www.jiawod.cn网站其实很简单,只有三个地方需要静态化,就是一个是主页,一个新闻列表页,一个是栏目页。
第一步下载ISAPI_Rewrite组建,ISAPI_Rewrite分精简(Lite)和完全(Full)版.精简版不支持对每个虚拟主机站点进行重写,只能进行全局处理.不过对于有服务器的朋友,精简版也就够啦.精简版下载地址可以到网官网去下载,安全可靠嘛。官网地址:ttp://www.helicontech.com/download.htm

接下来一步比较重要了,打开Internet 信息服务,右键,web站点属性,点ISAPI筛选器选项卡,添加筛选器,名称自己填,路径自己指定ISAPI_Rewrite.dll,然后确定。当然,采用默认安装它会帮你全部都配置好。
到此,ISAPI_Rewrite组建就安装好了,接下来就要写规则了。
下面就以news_view.asp 为例。
news_view.asp是读取新闻的内容。
news_view.asp规则:
RewriteRule /new/([0-9]+)\.html           /news_View\.asp\?id=$1 
比如真对客户端访问:
http://www.jiawod.cn/new/3378.html
意思就是把对/new/3378.html 访问映射到/news_viewp.asp?id=3378上面
下面是网站www.jiawod.cn 里面httpd.ini的全部内容:
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond Host: ^jiawod\.cn$
RewriteRule (.*) http\://www\.jiawod\.cn$1 [I,RP]
#RewriteRule   /abc.html   /zxzn.asp
#RewriteRule /news_View\.asp\?id=([0-9]+) /new/$1\.html [I,R]
RewriteRule /new/([0-9]+)\.html           /news_View\.asp\?id=$1&type=1
找到ISAPI_Rewrite安装目录下的http.ini文件去掉只读属性,把上面的代码中的蓝色部分修改成你自己需要的代码就可以了。
有人也许会问:你为什么要加
RewriteCond Host: ^jiawod\.cn$
RewriteRule (.*) http\://www\.jiawod\.cn$1 [I,RP]
这两行的意思是将jiawod.cn这个域名下的页面全部转向到www.jiawod.cn下。
这两行呢?问得好,因为我用的是2.0的版本,不支持RP属性,所以注销了,网上很多的isapi_rewrite2.x属性里用到了RP属性,其实,RP属性不支持2.0版本。有人说直接用[I,R]不就可以了吗?问得好,R表示302转向,RP表示301转向,你说用哪个呢?
针对这种情况,有人也许会问,那用户直接访问http://www.jiawod.cn/news_view.asp?id=3374不是一样可以访问么,的确如此,但是,通过更高版本的isapi rewrite的改写,完全可以将上面的地址301到http://www.jiawod.cn/new/3374.html
代码如下:
RewriteRule /news_View\.asp\?id=([0-9]+) /new/$1\.html [I,RP]
RewriteRule /new/([0-9]+)\.html           /news_View\.asp\?id=$1&type=1
为什么这样写?
 
上下篇: 关于URL重写 伪静态中的[QSA,L] 利用 ISAPI Rewrite 做网站301永久重定向

最新推荐信息