使用 URL 重写模块 您所在的位置:网站首页 下载重定向模块怎么用 使用 URL 重写模块

使用 URL 重写模块

2023-12-16 04:35| 来源: 网络整理| 查看: 265

使用 URL 重写模块 项目 07/19/2023

作者 :Ruslan Yakushev

关于 URL 重写模块

MICROSOFT URL Rewrite Module 2.0 for IIS 7 及更高版本使 IIS 管理员能够创建功能强大的自定义规则,将请求 URL 映射到用户更容易记住且更易于搜索引擎查找的友好 URL。 可以使用 URL 重写模块执行 URL 操作任务,其中一些任务包括:

定义强大的规则,将复杂的 URL 转换为简单且一致的 Web 地址。 轻松替换 Web 应用程序 URL 以生成用户和搜索引擎友好的结果。 基于 HTTP 标头和 IIS 服务器变量重写 URL。 根据重写规则中表示的逻辑执行重定向、发送自定义响应或停止 HTTP 请求。 基于 URL 段或请求元数据控制对网站内容的访问。

URL 重写模块以下载方式提供,可在自己的 IIS 服务器上安装,也可在 Microsoft 的 Azure 网站 云平台上安装。

URL 重写 2.0 功能

Microsoft URL 重写模块 2.0 包含以下主要功能:

基于规则的 URL 重写引擎。 重写规则定义用于分析请求 URL 的逻辑,并将其映射为当请求 URL 与定义的规则匹配时重新显示 URL。 Web 服务器和站点管理员可以使用重写规则集来定义 URL 重写逻辑。 正则表达式模式匹配。 重写规则可以使用正则表达式语法进行 ECMA-262 中定义的模式匹配。 通配符模式匹配。 重写规则可以使用通配符语法进行模式匹配。 全局和分布式重写规则。 URL 重写使用全局规则来定义服务器范围的 URL 重写逻辑。 这些规则在 applicationHost.config 文件中定义,它们取代了在配置层次结构中较低级别配置的规则。 该模块还使用分布式规则来定义特定于特定配置范围的 URL 重写逻辑。 可以使用 Web.config 文件在任何配置级别定义此类型的规则。 访问服务器变量和 HTTP 标头。 服务器变量和 HTTP 标头提供有关当前 HTTP 请求的其他信息。 此信息可用于配置重写规则或撰写输出 URL。 各种规则操作。 规则可以执行其他操作,例如发出 HTTP 重定向、中止请求或将自定义状态代码发送到 HTTP 客户端,而不是重写 URL。 支持 IIS 内核模式和用户模式输出缓存。 IIS 输出缓存为 Web 应用程序提供了显著的性能改进。 URL 重写模块与这两种类型的输出缓存完全兼容。 这意味着可以安全地缓存重写 URL 的响应,从而提高依赖 URL 重写的 Web 应用程序的性能。 字符串操作函数。 内置字符串操作函数可用于将 URL 转换为小写,以及执行 URL 编码和解码。 重写映射。 重写映射是名称/值对的任意集合。 可以在重写规则中使用重写映射来生成替换 URL。 重写映射在有大量重写规则时特别有用,所有这些规则都使用静态字符串 (即没有) 使用的模式匹配。 在这些情况下,可以使用输入 URL 作为键,将替换 URL 作为值,将之间的所有映射放入重写映射中,而不是定义一大组简单的重写规则。 然后,可以有一个重写规则,该规则引用重写映射,以根据输入 URL 查找替换 URL。 请求跟踪支持失败。 IIS 失败请求跟踪可用于排查与 URL 重写相关的错误。 规则模板。 规则模板是 URL 重写模块用户界面的扩展,可简化特定任务的重写规则的创建。 该模块包括 3 个规则模板,还支持插入任意数量的自定义模板。 用于测试正则表达式和通配符模式的用户界面 (UI) 。 模块中提供了用于测试规则模式的 UI。 使用 UI,可以在重写规则中快速检查正则表达式或通配符模式的结果。 还可以使用 UI 来排查和调试与模式匹配相关的问题。 用于管理重写规则和重写映射的 UI。 可以使用 IIS 管理器中的 URL 重写模块添加、删除和编辑重写规则和重写映射。 用于导入mod_rewrite规则的 UI。 URL 重写模块包含一个 UI,用于将重写规则从 mod_rewrite 格式转换为 IIS 格式。 获取 URL 重写模块的位置

有关详细信息和下载模块,请参阅 URL 重写扩展主页。

从上线版本升级

如果已安装 URL 重写模块的上线版本,安装包会将其升级到 URL 重写版本 2.0。 将保留ApplicationHost.config和Web.config文件中的所有重写规则。

ASP.NET 更新

URL 重写模块安装程序包包含 ASP.NET 更新,该更新修复了特定于 URL 重写模块 ASP.NET bug。 具体而言,此更新包含以下 bug 的修复:

使用 URL 重写时,ASP.NET Web 服务器控件中的 ~ 运算符解析不正确。 当 sitemap 包含虚拟 URL 时,ASP.NET SiteMap.CurrentNode 属性返回 null。

仅当安装 URL 重写模块的计算机.NET Framework版本 3.5 SP1 或更高版本时,才应用更新。 如果在安装 URL 重写模块后安装所需版本的 .NET Framework,可以通过运行 URL 重写模块安装程序,然后在安装程序对话框中选择“修复”选项来应用 ASP.NET 更新。

有关这些以及与 URL 重写相关的其他 ASP.NET 问题的更多详细信息,请参阅 url Rewriting for ASP.NET Web Forms。

使用模块

这些文章介绍了 URL 重写模块的功能,并说明如何使用它来实现常见的 URL 重写方案。

学习基础知识

创建重写规则

使用失败的请求跟踪来跟踪重写规则

使用全局和分布式规则

使用重写映射

导入 Apache mod_rewrite规则

在 WordPress 中启用漂亮的永久链接

规则模板

用户友好 URL 使用重写映射的规则 请求阻止

测试规则和条件模式

参考和指南 URL 重写模块配置参考 URL 重写和 ASP.NET 路由 URL 重写和请求筛选 ASP.NET Web Forms的 URL 重写 为 URL 重写模块开发规则模板 视频演练 使用 URL 重写模块 - 视频演练 自上线发布以来的更改

自上线发布以来,对 URL 重写模块进行了以下添加、更改和重要 bug 修复:

添加了字符串操作函数 UrlEncode 和 UrlDecode。 通过服务器变量UNENCODED_URL提供对原始 URL 的访问权限。 此服务器变量现在包含原始编码的 URL,与 Web 浏览器请求的 URL 完全相同。 添加了用于为应用程序请求路由配置重写规则的 UI, (ARR) 。 从 URL 重写模块的上线版本添加了对就地升级的支持。 添加了清理内部缓存的功能,以避免在缓存重写规则时过度使用内存。 修复了与重写包含非 ASCII 字符的 URL 相关的 bug。 修复了处理正则表达式时导致不区分大小写的模式对字符范围进行错误计算的 bug。 在安装包中包含 IIS FastCGI 模块的更新 。 将System.Web.dll的 更新 包含在安装程序包中。 将 IIS SetUri 函数的更新包含在安装程序包中。 已知问题 使用 URL 导入时,使用 REQUEST_URI 服务器变量 mod_rewrite 规则可能无法正常工作 重写 导入规则 功能。 若要修复导入的规则用法,可以使用任何文本编辑器打开包含这些规则的 Web.config 文件。 找到 节,然后在该节中将字符串“{SCRIPT_NAME}”的所有实例替换为字符串“{URL}”。 摘要式身份验证不能与 URL 重写模块一起使用。 ASP.NET Forms 身份验证使用重写的 URL 进行重定向。 例如,如果请求的 URL 为“/article.htm”,而 URL 重写模块将 URL 重写为受 Forms 身份验证保护的“/article.aspx”,那么 ASP.NET 会重定向到“/login.aspx?ReturnUrl=%2Farticle.aspx”。 ASP.NET Forms 身份验证中的自动检测模式使用重写的 URL 进行重定向。 例如,如果请求的 URL 为“/article.htm”,而 URL 重写模块将 URL 重写为受 Forms 身份验证保护的“/article.aspx”,那么 ASP.NET 会重定向到“/article.aspx?AspxAutoDetectCookieSupport=1”。 ASP.NET Forms 身份验证中的 UseUri 模式使用重写的 URL 进行重定向。 例如,如果请求的 URL 为“/article.htm”,而 URL 重写模块将 URL 重写为受 Forms 身份验证保护的“/article.aspx”,则 ASP.NET 将重定向到“/ (S (vy2ebt45imfkmjjwboow3l55) ) /article.aspx”。 使用基于 URI 的身份验证或无 Cookie 会话状态时,ASP.NET 重写回原始 URL。 例如,当向“/ (S (vy2ebt45imfkmjjwboow3l55) ) /article.htm”发出请求,并且 URL 重写模块将“/article.htm”重写为“/article.aspx”时,ASP.NET 会将 URL 重写回“/article.htm”,这可能会导致“404 - 找不到文件”错误。 当 URL 重写模块重写到文件夹时,IIS DefaultDocument 模块可能会重定向到重写的 URL。 例如,如果重写规则中的替换 URL 为“/folder1/folder2”,并且这些文件夹存在于文件系统上并配置了默认文档,则 DefaultDocument 模块会将 Web 客户端重定向到“/folder1/folder2/”,从而公开重写的 URL。 若要防止这种情况发生,请在重写到文件夹时使用替换 URL 末尾的“/”,例如“/folder1/folder2/”


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有