找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 服务器 Windows 查看内容

如何让IIS,win2003支持rewrite重定向

2010-1-31 18:46| 发布者: admin| 查看: 483| 评论: 1|原作者: 情殇

让你的iis跟apache一样支持mod_rewrite重定向

最近一直忙着优化公司网站,其中最重要的内容是如何更友好的让搜索引擎收录,大家都知道将动态网页链接rewriting成静态链接是最保险和稳定的面向搜索引擎优化方式了
在Apache服务器上有一个非默认模块mod_Rewrite。使用了正则表达式方式,把动态页面转换为静态页面。这样我们就可以把Result.php?ClassID=123映射成123.html这样的静态页面。当遇到123.html的请求时,web server自动导向Result.php?ClassID=123来处理。目前IIS是不支持Rewrite的,那iis有没有办法实现如apache那样的rewrite呢?答案是肯定的(是肯定有还是肯定没有呢?废话!当然是肯定有了!)我们可以通过安装服务器扩展让IIS支持Rewrite功能,目前有两种产品支持IIS的Rewrite,isapi_rewrite 和 IIS Rewrite。我用的是ISAPI REWRITE的免费版
下载地址
http://www.helicontech.com/download/
isapi_rewrite利用正则表达式进行替换规则的表示。
我要Rewrite的页面是一个站内搜索的asp页面Result.asp?ClassID=XXX
目的是当用户输入http://www.olol.net/33.htm的时候,叫他实际上访问的是
http://www.olol.net/Result.asp?ClassID=33这个页面
首先安装isapi_rewrite,默认安装目录C:\Program Files\Helicon
注意如果你的硬盘是ntfs格式分区,安装完后将C:\Program Files\Helicon\ISAPI_Rewrite\下的配置文件httpd.ini的只读属性去掉!
如果大家的正则表达式要是学的好的话,基本上就没有什么了
匹配页面 33.htm 用正则表达式表示(\d+)\.htm
格式化页面 Result.asp?ClassID=XXX 用正则表达式表示Result\.asp\?ClassID=$1 [N,I]
按照 RewriteRule 匹配表达式 格式化表达式 的格式将上面写的正则表达式写到httpd.ini文件
RewriteRule /(\d+)\.htm /Result\.asp\?Classid=$1 [N,I]
文件保存后,不需重新启动iis即可生效!
发表评论

最新评论

引用 悠悠 2010-1-31 18:48
1、下载附件,解压到一个目录下(比如C:\write) 2、开始--管理工具--IIS设置 3、在左边找到 web站点-你的网站名(比如www.snowcn.net)--右击--属性,找到“ISAPI筛选”--添加--浏览,找到第一步解压的目录下的Rewrite.dll,确定(比如C:\php\sapi\Rewrite.dll)。 3、确定,关闭属性窗口,重新启动IIS,使ISAPI筛选生效 4、用记事本打开第一步解压目录下的httpd.ini,修改规则 默认规则如下: [Copy to clipboard]CODE: # 独立主机用户 # 修改以下语句中的 /supesite 修改为你的SupeSite目录地址,如果程序放在根目录中,请将 /supesite 修改为 / RewriteRule ^/supesite/action/(.+)$ /supesite/index\.php\?action/$1 RewriteRule ^/supesite/i([0-9]+)(.*)$ /supesite/index\.php\?action/viewspace/itemid/$1$2 RewriteRule ^/supesite/t([0-9]+)(.*)$ /supesite/index\.php\?action/viewbbs/tid/$1$2 RewriteRule ^/supesite/([0-9]+)/tplid(.*)$ /supesite/index\.php\?action/space/uid/$1/tplid$2 RewriteRule ^/supesite/([0-9]+)/starttime(.+)$ /supesite/index\.php\?action/spacelist/uid/$1/starttime$2 RewriteRule ^/supesite/([0-9]+)/type(.+)$ /supesite/index\.php\?action/spacelist/uid/$1/type$2 RewriteRule ^/supesite/([0-9]+)(.*)$ /supesite/index\.php\?action/space/uid/$1$2 RewriteRule ^/supesite/index\.([a-zA-Z]+)$ /supesite/index.php 如果你的x-space访问格式为直接域名格式(比如xpace.snowcn.net),则用下面这段替换上面的内容 [Copy to clipboard]CODE: RewriteRule ^/action/(.+)$ /index\.php\?action/$1 RewriteRule ^/i([0-9]+)(.*)$ /index\.php\?action/viewspace/itemid/$1$2 RewriteRule ^/t([0-9]+)(.*)$ /index\.php\?action/viewbbs/tid/$1$2 RewriteRule ^/([0-9]+)/tplid(.*)$ /index\.php\?action/space/uid/$1/tplid$2 RewriteRule ^/([0-9]+)/starttime(.+)$ /index\.php\?action/spacelist/uid/$1/starttime$2 RewriteRule ^/([0-9]+)/type(.+)$ /index\.php\?action/spacelist/uid/$1/type$2 RewriteRule ^/([0-9]+)(.*)$ /index\.php\?action/space/uid/$1$2 RewriteRule ^/index\.([a-zA-Z]+)$ /index.php 如果你的space访问格式为二级目录这样的(访问格式类似为www.snowcn.net/space的),请把其中的supesite全部替换为你的x-space所在目录(比如这里将supesite全部替换为space)最后保存文件

查看全部评论(1)

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 11:24 , Processed in 0.226256 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部