iis 支持url 特殊字符_URL重写

本文详细介绍了IIS的URL重写功能及其替代方案UrlRewrite.NET,提供了配置和规则语法的参考。通过解析`rewrite`、`rules`、`rewriteMaps`等关键元素,阐述了如何处理URL特殊字符以及在不同场景下的应用,帮助开发者更好地管理和重写URL。
摘要由CSDN通过智能技术生成

3bf5e99ed9b7435d2785d55d86d1d857.png

(图片来自:https://github.com/Bikeman868/UrlRewrite.Net)

1.Microsoft Rewrite

Using Rewrite Maps in URL Rewrite ModuleIn this walkthrough you will create two rewrite maps: one rewrite map will be used by rule that performs url rewriting, and another rewrite map will be used by rule that performs redirects to a different domain.两个演练,一个url重写,一个重定向到不同的domain
<rules>    <rule name="Rewrite Rule">                <match url=".*" />        <conditions>                        <add input="{StaticRewrites:{REQUEST_URI}}" pattern="(.+)" />        conditions>                <action type="Rewrite" url="{C:1}" />    rule>rules>

可以参考:https://docs.microsoft.com/zh-cn/iis/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

UrlRewrite.NET是对官方提供的重写方案的替换,不是补充。

2.UrlRewrite.NET

https://github.com/Bikeman868/UrlRewrite.Net

New functionality这是相对重要的部分,它对Microsoft的Rewrite机制进行了扩展。。。

ca45ecf1dd0e1d2f73896bd4b69c33bb.png

明确每个节点,及其对应的含义。

Solution文件夹中有对应的示例代码:

9e590a6825538d47b687d5bc68848a6b.png

d098c193d6e959a1ecddd9dd07e7fab0.png

Syntax Reference 语法参考

rewrite

描述:document的根元素,这里的document所指是对应的xml配置文件

父节点:没有父节点

子节点:rules、rewriteMaps

规则:只能有一个rules子元素,所有的rewriteMaps的子节点必须在rules子节点的前面

rules

描述:rule元素列表的容器

name属性:仅用于追踪输出

stopProcessing属性:默认是true,通过设置成false,停止stopProcessing标志从当前列表内的规则传播到父规则

父节点:rewrite或者rule

子节点:rule和assembly

规则:assembly子节点必须放在rule子节点的前面。rule子节点引用程序集的自定义扩展。建议将assembly放在子节点的最上方

rewriteMaps

描述:rewriteMap元素列表的容器

父节点:rewrite

子节点:rewriteMap

规则:子节点必须有唯一的names属性

rewriteMap

描述:定义一个查找的字典,用起来像一个 大括号的扩展中函数。

name属性:name用于引用大括号中的映射

defaultValue属性:当在字典中没有匹配的条目的情况下, 返回的默认值

父节点:rewriteMaps

子节点:add

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值