对URL重写转向的支持,在Apache服务器上由一非缺省模块(mod_rewrite)来完成,这个模块的功能很强大,同时也很烦琐。而在IIS下也同样有类似的模块,分别是ISAPI REWRITE及IIS REWRITE。无论是在Apache下还是在IIS下,重写转向的语法都基于正则表达式,只有少量的不同。当然对一般的应用,没必要把所有手册和说明文档翻熟,下面以一个虚拟的http://www.1234567.com动态站点为例介绍一些简单的方法,读者可以根据自己网站的情况做调整。     

网址:http://www.1234567.com/content.asp?sort=3

在IIS的安装isapirewrite的情况下只须设置:RewriteRule /content/(\d+)\.html /content\.asp\?sort=$1 [N,I]
这样就将:/content/3.html 这样的请求映射成为/content.asp?sort=3
然后通过:http://www.1234567.com/content/3.html同样能访问到刚才的页面。

另一个更通用的能将所有的动态页面做参数映射的表达式是:
RewriteRule (.*?\.php)(\?[“/]*)?/([“/]*)/([“/]*)(.+?)? $1(?2$2&:\?)$3=$4?5$5: [N,I]
这样就把http://www.my123.com/foo.php?a=A&b=B&c=C表现成  http://www.my123.com/foo.php/a/A/b/B/c/C。

来源:http://www.ooone.com/blog/blogview.asp?logID=96&cateID=2

补充:IsapiRewrite下载地址:http://www.helicontech.com/download/

发表评论