最近在搞url重写 遇到iis 无扩展名及html映射问题 供后人查看
因为考虑功能比较多(URLRewriter组件有些功能满足不了要求)所以就用了HttpModule方法重写
iis5.1中 添加应用程序映射 .* (注意 这种方法只有5.1中可以)到 C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll 确定文件是否存在去掉 即可
iis6.0中 搜了大量文章 都不可以 ,终于看到一篇文章 在通配符应用程序映射插入isapi.dll文件映射 如图:
重新启动iis 目录映射就起作用了(据说很耗服务器资源)
下面来说 iis7.0+以上的 版本 这个比较繁琐 但是很简单 不像 iis6.0我找了很久才找到方法
1) 首先新建一个应用程序池,名称任意,比如:Myweb,托管管道模式先暂时设置为集成模式;
2) 部署好站点,并将此站点的应用程序池设置为Myweb
3) 选中站点,切换到功能试图,找到 "服务器组件"-> "处理程序映射",双击之后,在打开窗口右侧的操作栏目下做如下设置:
"添加脚本映射":请求路径 .html ,可执行文件选择 C:WindowsMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll ,名称随意;
"添加通配符脚本映射":请求路径 * ,可执行文件为:C:WindowsMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll,名称随意;
6)"添加托管处理程序":请求路径 * ,可执行文件:System.Web.UI.PageHandlerFactory,名称随意;;
4) 打开站点切换到功能试图,找到 "服务器组件"->"模块",双击之后,在打开窗口右侧的操作栏目中,点击"添加托管模块",类型
设置自己的HttpModel 模块,并且把"仅针对向asp.net 应用程序或托管处理程序发出请求调用" 选中;
8)最后,找到我们第一步建立的应用程序池Myweb,将托管管道模式设置为经典模式。
重新启动 网站 查看