IIS7中如何配置Url重写
今天在部署测试项目时需要配置URL重写,由于安装Win7后一直没怎么使用IIS7,今天配置URL重写费了点功夫,最后在同事的帮忙下终于完成了配置。这次操作也有了一些收获,写出来与大家分享,也希望大家多多交流!
遭遇狙击:
在IIS7里部署好站点后开始配置URL重写,根据以往的经验,认为IIS7会兼容低版本的操作,但事实证明我错了。虽然安装IIS的时候瞧见了ISAPI Extensions选项,而且我也勾选了,但前前后后找了N久愣没让我找到这个,网上搜了一下,有人说他们有见到这个图标,虽然我将AppPool设置为Classic模式,但ISAPI Extensions图标依然没有出现。此时配置遭遇狙击,不得不呼叫救援!
进行反击:
网上google一把,IIS7下URL重写配置的问题不少,但给出的解答都是IIS6下的操作,而且那个说在IIS7里看见ISAPI Extensions图标的兄弟也没有说他怎么安装、配置的。虽说我也看见了有人在截取了与IIS6下相同的ISAPI Extensions窗口,但依然没有找到这个选项,哪位兄弟知道,望告知,在此先行谢过!继续google,终于找到一篇有参考价值的文章http://learn.iis.net/page.aspx/508/wildcard-script-mapping-and-iis-7-integrated-pipeline/,文章指出要在Web.config里增加:
2 <modules>
3 <add name="UrlRewriter" type="URLRewriter.ModuleRewriter" />
4 </modules>
5</system.webServer>
于是照做(此时AppPool为Classic模式),测试,结果还是出现404错误,那篇文章是用Classic模式,aspx后缀URL重写来说明如何配置URL重写的,反击失败。
援兵到达:
此时旁边的同事瞧见我依然在鼓捣IIS,于是问我搞什么呢,我说配置URL重写呢,他就给我看了一下。结果我发现AppPool在Classic模式与在Integrated模式下,站点设置选项略有不同。只注意了Modules设置项的差异,有图有真相,各位看官请看图:
Classice:
Integrated:
由图可见,Classic模式下Modules配置比Integrated模式下少了Add Managed Module选项!