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重写iis配置

【URL重写】IIS7配置URL重写的更多相关文章

  1. iis7下url重写后,已存在的html不能访问了(未能执行URL)的解决方法

    iis7下url重写后,原本存在的html不能访问了,未能执行URL(asp.net对真正的.html(但不符合重写规的)就不知道如何处理了),遇到类似情况的朋友可以参考下   当把.html的url ...

  2. IIS配置Url重写实现http自动跳转https的重定向方法(100%解决)

    引言 本文推荐阅读地址:https://www.52abp.com/BlogDetails/10008 这种文章网上可以说一搜一大把,但是我为什么还要写呢,因为一搜一把没把我气死,都是东抄西挪的东西, ...

  3. Nginx – rewrite 配置 URL重写及301跳转原理图

    Nginx – rewrite 配置 URL重写 官网:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html 语法:rewrite re ...

  4. nginx配置url重写

    url重写是指通过配置conf文件,以让网站的url中达到某种状态时则定向/跳转到某个规则,比如常见的伪静态.301重定向.浏览器定向等 rewrite 语法 在配置文件的server块中写,如: s ...

  5. 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带入启 ...

  6. [tp3.2.1]开启URL(重写模式),省略URL中的index.php

    重写模式(省略url中的index.php) 在apache配置文件httpd.conf中,查找 1.mod_rewrite.so, 启动此模块 2.AllowOverride , 值= All 3. ...

  7. 重写外部图片URL,变成自己的URL

     1.获取原图链接 上传一张图片文件到淘图,得到以下链接: https://img.alicdn.com/imgextra/i4/358272220/TB2hCqxmB8lpuFjSspaXXXJKp ...

  8. 【Apache】apache简单配置URL重写规则

    [概述]URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程.举个例子来说,如果通过浏览器进来的URL是index.php?type=news&& ...

  9. IIS配置页面重写(配合插件url-rewrite2去除页面后缀名)

    本来一直想了解浏览器地址栏中url后缀名如何去除,今天正好抽空折腾一下. 下面参考一位博友文章(出处见文章末尾),基于windows平台(windows7)详细介绍. 1. URL重写组件url-re ...

随机推荐

  1. java设计模式——单例设计模式

    /*设计模式:对问题行之有效的解决方式.其实它是一种思想. 1,单例设计模式.    解决的问题:就是可以保证一个类在内存中的对象唯一性. 必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的 ...

  2. tsdb import 相关

    今天一直在做opentsdb 大量导入数据的工作. 中间遇到了一些值得记录的问题, 这里随手记一下 明天好好整理 1. 多进程logger python的logging模块不支持多进程,但我们可以用s ...

  3. NYOJ 题目42 一笔画问题(欧拉图)

    一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描写叙述 zyc从小就比較喜欢玩一些小游戏.当中就包含画一笔画.他想请你帮他写一个程序.推断一个图是否可以用一笔画下 ...

  4. Django学习系列之Form验证

    django表单基础 django表单分类 基于django.forms.Form:所有表单类的父类 基于django.forms.ModelForm:可以和模型类绑定的Form Form验证流程 定 ...

  5. 016 ppp authentication

    Press RETURN to get started!       Router>en Router#config t Enter configuration commands, one pe ...

  6. 用vhd挂载并安装win7且建立分差vhd

    准备:硬盘分区激活第一个分区; imagex.exe; install.wim; winpe boot pc 1.cmd命令下,创建主vhd      (1)diskpart       (打开dis ...

  7. nodejs v8引擎c++编译版本号升级教程

    原GCC版本号:4.4.7. 目标:升级GCC到4.8.2.以支持C++11. yum install gcc-c++ 获取GCC 4.8.2包:wget http://gcc.skazkaforyo ...

  8. 面试题之strcpy/strlen/strcat/strcmp的实现

    阿里的电面要我用C/C++实现一个字符串拷贝的函数,虽然以前写过 strcpy 的函数实现,但时间过去很久了,再加上有点紧张,突然就措手不及了.最后写是写出来了,但没考虑异常的情况,面试官好像很不满意 ...

  9. 【CERC2008】【BZOJ4319】Suffix reconstruction

    Description 话说练习后缀数组时,小C 刷遍 poj 后缀数组题. 各类字符串题闻之丧胆.就在准备对敌方武将发出连环杀时,对方一记无中生有,又一招顺 手牵羊.小C 程序中的原字符数组就被牵走 ...

  10. 《转》 Ceilometer项目源代码分析----ceilometer项目源代码结构分析

    感谢朋友支持本博客,欢迎共同探讨交流.因为能力和时间有限,错误之处在所难免,欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/gaoxingnengjisua ...