【URL重写】IIS7配置URL重写
URL Rewrite Module
此模块适用于IIS7、7.5、8。
微软在IIS7中添加了URL的重写模块,并且免费使用,可以导入.htaccess规则,但需要安装。
第一步:安装URL2.0模块
(图-1)
(图-2)
然后关闭当前窗口,重新打开服务和应用程序(IIS管理),即可看到,安装成功
(图-3)
第二步:配置站点(重点+难点)
1、这里要注意,单纯的配置URL规则,是不起作用的,需要添加处理程序的映射。
2、原IIS用的ISAPI配置文件,可以直接导入到URL2.0,但需要修改规则,不然不会成功(这点一定要注意,因为我就在这里折腾了好久)
一、配置 处理程序映射+模块
先把IIS应用程序池的托管管理道模式为集成(为了可以做第3,4步)
首先在IIS中的站点里,找到处理程序映射。双击进去
添加脚本映射
(路径:*.html
可执行文件%windir%Microsoft.NETFrameworkv2.0.50727aspnet_isapi.dll
名称:任意,比如Html_*)
添加通配符脚本映射
路径:*
可执行文件:C:\Windows\Microsoft.NET\Frameworkv2.0.\50727\aspnet_isapi.dll
名称:任意,比如Html_all
托管处理程序映射
路径:*.html
可执行文件:System.Web.UI.PageHandlerFactory
名称:任意 比如Html-Integrate
IIS中找到模块(双击进去)-->添加托管模块---->
名称:任意 如Html_*
类型:URLRewriter.ModuleRewrite
把 仅针对向asp.net 应用程序或托管处理程序发出请求调用 勾上
将应用程序池的托管管理道模式为经典,大功完成。
以上步骤是针对32位电脑系统所写,如果您的电脑是64位系统,需要再设置如下一个步骤
选择重写站点对应的应用程序连接池,高级设置,启用32位应用程序,设为true
上面设置完,重写成HTML肯定成功,但是II7或以上有个bug,也就是真实存在的html没有办法访问,下面我给大家提供一个可以解决的办法,也就是在webconfig里加下配置就能解决(绿底白字部分):
<system.web>
<globalization fileEncoding="utf-8" />
<customErrors mode="On" defaultRedirect="404.aspx">
<error statusCode="404" redirect="404.aspx" />
</customErrors>
<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>
</system.web>
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="default.html" />
<add value="default.aspx" />
</files>
</defaultDocument>
<handlers>
<add name="Html-Integrate" path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" preCondition="integratedMode" />
<add name="Html_all" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
<add name="html_*" path="*.html" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
</handlers>
<modules>
<remove name="FormsAuthentication"
/>
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="" />
<remove name="UrlAuthorization" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" preCondition="" />
<remove name="DefaultAuthentication"
/>
<add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="" />
<add name="html_*" type="URLRewriter.ModuleRewrite" preCondition="managedHandler" />
</modules>
<rewrite>
<rules>
<rule name="代理单页">
<match url="^daili/([0-9]+).html$"
/>
<action type="Rewrite" url="/daili/dldetail.aspx?id={R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
二、配置URL规则
自己现在只是略懂,所以就不说了,举几个例子
常用的是第二个,所以一定要加^ $这两个符号
三、遇到的问题
1、配置过程中,出现这个错误,
无法在此应用程序的引用程序集中找到指定的类型。请确保已将程序集添加到应用程序的WEB.config的system.web/compilation中的程序集列表,仍要继续吗?
可以把下面这段代码加上
<modules>
<remove name="FormsAuthentication" />
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition=""/>
<remove name="UrlAuthorization" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" preCondition=""/>
<remove name="DefaultAuthentication" />
<add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition=""/>
</modules>
2、IIS7.5的配置
因为window server 2008
R2只有X64的系统,对于X64和X32没有太多的了解,所以在IIS7.5上这样配置,IIS里面的ISAPI和CGI限制,设置.net4.0和.net2.0全部允许,不区分X64和X32.(这是自己的理解,不知道有哪些影响,暂且这样吧)
最后
***************************************************************
考虑到需要配置多个站点的情况,为了简化操作,可以这样弄:
复制上面的红色字体部分,到web.config中对应的位置,然后在配置url规则,这样更便捷。
***************************************************************
参考文章:
IIS7.0设置 url重写成html(伪静态)
http://www.cnblogs.com/taizhouxiaoba/archive/2011/09/20/2182032.html
IIS7.5 伪静态 脚本映射 配置方法(图文详解)
http://www.jb51.net/article/72818.htm
IIS7 伪静态 web.config 配置方法【详解】
http://www.cnblogs.com/taizhouxiaoba/archive/2011/09/20/2182032.html
十有三博客
http://shiyousan.com/post/635646254870261696
无法在此应用程序的引用程序集中找到指定的类型。请确保已将程序集添加到应用程序的WEB.config的system.web/compilation中的程序集列表,仍要继续吗?
http://bbs.csdn.net/topics/390233270
【URL重写】IIS7配置URL重写的更多相关文章
- iis7下url重写后,已存在的html不能访问了(未能执行URL)的解决方法
iis7下url重写后,原本存在的html不能访问了,未能执行URL(asp.net对真正的.html(但不符合重写规的)就不知道如何处理了),遇到类似情况的朋友可以参考下 当把.html的url ...
- IIS配置Url重写实现http自动跳转https的重定向方法(100%解决)
引言 本文推荐阅读地址:https://www.52abp.com/BlogDetails/10008 这种文章网上可以说一搜一大把,但是我为什么还要写呢,因为一搜一把没把我气死,都是东抄西挪的东西, ...
- Nginx – rewrite 配置 URL重写及301跳转原理图
Nginx – rewrite 配置 URL重写 官网:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html 语法:rewrite re ...
- nginx配置url重写
url重写是指通过配置conf文件,以让网站的url中达到某种状态时则定向/跳转到某个规则,比如常见的伪静态.301重定向.浏览器定向等 rewrite 语法 在配置文件的server块中写,如: s ...
- Atitit.面向接口的web 原理与设计重写 路由启动绑定配置url router rewriting urlpage mvc mvp的 java c#.net php js
Atitit.面向接口的web 原理与设计重写 路由启动绑定配置url router rewriting urlpage mvc mvp的 java c#.net php js 原理 通过vm带入启 ...
- [tp3.2.1]开启URL(重写模式),省略URL中的index.php
重写模式(省略url中的index.php) 在apache配置文件httpd.conf中,查找 1.mod_rewrite.so, 启动此模块 2.AllowOverride , 值= All 3. ...
- 重写外部图片URL,变成自己的URL
1.获取原图链接 上传一张图片文件到淘图,得到以下链接: https://img.alicdn.com/imgextra/i4/358272220/TB2hCqxmB8lpuFjSspaXXXJKp ...
- 【Apache】apache简单配置URL重写规则
[概述]URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程.举个例子来说,如果通过浏览器进来的URL是index.php?type=news&& ...
- IIS配置页面重写(配合插件url-rewrite2去除页面后缀名)
本来一直想了解浏览器地址栏中url后缀名如何去除,今天正好抽空折腾一下. 下面参考一位博友文章(出处见文章末尾),基于windows平台(windows7)详细介绍. 1. URL重写组件url-re ...
随机推荐
- Layui弹出层、日期和时间选择、即时通讯、分页
Layui弹出层.日期和时间选择.即时通讯.分页 弹层组件文档 - layui.layer 对于弹出层的感觉是:layer 至今仍作为 layui 的代表作,她的受众广泛并非偶然,而是这数年来的坚持. ...
- Elasticsearch自定义客户端(TransportClient)资源池
前言: java中调用TransportClient时,我们一般都会设置成单例,为了避免多次的创建与关闭造成的内存占用及关闭缓慢问题.而TransportClient本身也是实现了线程池threadP ...
- CAS--CompareAndSwap原理
1.CAS(Compare-and-Swap),即比较并替换,是一种实现并发算法时常用到的技术,Java并发包中的很多类都使用了CAS技术. CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更 ...
- JSP的EL表达式语言
以下内容引用自http://wiki.jikexueyuan.com/project/jsp/expression-language.html: JSP表达式语言(EL)可以方便地访问存储在JavaB ...
- 实战!利用MSF批量扫描校园网中含有MS17_010漏洞的主机并入侵
利用ms17_010的永恒之蓝在前些日子火爆了一段时间,校园网中也声称封锁了相应端口.最近在搞MSF的深入学习,于是有了下文. ms17_010扫描工具 msf中的辅助模块含有一个强大的ms17_01 ...
- VB.NET+三层 机房收费系统之组合查询
关系组合查询已经用去了4天的时间.每天都在痛苦中煎熬,绞尽脑汁,一句代码都要瞪大眼睛看好长时间,有时候.由于两句话颠倒了.就nothing了:有时候,由于table如何可以转换成实体类型.将自己困住了 ...
- Objective-C 2.0 基础要点归纳
本文的阅读基本条件: 具备C/C++基础知识,了解面向对象特征 阅读过<Objective-C 2.0 程序设计(第二版)>.<Objective-C 程序设计 第6版>或相关 ...
- hdu 4869 Turn the pokers 策略(组合数)
题意:输入操作次数n和扑克牌数m,一開始扑克牌全都背面朝上. 如今输入n个数xi,表示选择xi张牌翻转,问最后的牌的情况有多少种可能? 题解: 我们将一開始的牌觉得是m个0.而翻转就是将0变成1或者1 ...
- IE7下兼容问题总结
1.<LI> border-bottom 不显示 解决办法 加个height:100%; 2.border:none;不好使,要用 border:0;
- Android学习笔记(14):相对布局RelativeLayout
相对布局RelativeLayout,继承自ViewGroup.相对布局的子组件的位置总是相对于兄弟组件或者父容器决定的. RelativeLayout支持的XML属性: android:gravit ...