IIS7.0设置 url重写成html,伪静态

前提条件:先把IIS应用程序池的托管管理道模式为集成(为了可以做第3,4步)

首先在IIS中的站点里,找到处理程序映射。双击进去

1、添加脚本映射(路径:*.html 可执行文件%windir%Microsoft.NETFrameworkv2.0.50727aspnet_isapi.dll 名称:任意,比如Html )

2、添加通配符脚本映射(32位操作系统,路径:* 可执行文件:C:\Windows\Microsoft.NET\Frameworkv2.0.\50727\aspnet_isapi.dll 名称:任意,比如All

,64位操作系统:路径:* 可执行文件:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 名称:任意,比如All

)

3、添加托管处理程序映射(路径:*.html 可执行文件:System.Web.UI.PageHandlerFactory 名称 任意 比如Html-Integrate)

4、IIS中找到模块(双击进去)-->添加托管模块---->(名称:任意 如All 类型:URLRewriter.ModuleRewrite

把 仅针对向asp.net 应用程序或托管处理程序发出请求调用 勾上

5、将应用程序池的托管管理道模式为经典

以上步骤是针对32位电脑系统所写,如果您的电脑是64位系统,需要再设置如下一个步骤

选择重写站点对应的应用程序连接池,高级设置,启用32位应用程序,设为true

上面设置完,重写成HTML肯定成功,但是II7或以上有个bug,也就是真实存在的html没有办法访问,下面我给大家提供一个可以解决的办法,也就是在webconfig里加下配置就能解决:

<system.web>

<httpHandlers>

<add verb="*" path="*.html" type="System.Web.UI.PageHandlerFactory"/>

</httpHandlers>

<compilation debug="true" targetFramework="4.0">

<buildProviders>

<add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>

</buildProviders>

</compilation>

<globalization requestEncoding="utf-8" responseEncoding="utf-8" />

<httpRuntime requestValidationMode="2.0" />

<pages validateRequest="false" />

</system.web>

上面加红色的就是了