让你的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即可生效! |
|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏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.