IIS URL重写非英文字符的规则问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS URL重写非英文字符的规则问题相关的知识,希望对你有一定的参考价值。
我的IIS URL Rewrite 2规则与非英语(瑞典语)字符(åäö)一起使用时遇到问题。我在Windows Server 2012 R2(IIS 8.5)上。
此规则适用于英文字符:
<rule name="RedirectSubWebKeepURI" enabled="true" stopProcessing="true">
<match url="^department/lawyers/(.*)" />
<action type="Redirect" url="/section/lawyers/{R:1}" />
</rule>
但是假设我将“律师”拼写为“låwyers”(不是真正的词!),我怎样才能让它发挥作用?
以下两个例子都不起作用:
<match url="^department/låwyers/(.*)" /> [real character]
<match url="^department/l%C3%A5wyers/(.*)" /> [URL encoded 'å']
我错过了什么? This previous question说你必须使用{UNENCODED_URL}
变量,但这是否意味着我必须匹配所有URL:s与".*"
并将实际匹配逻辑移动到一个条件而不是?如果是这样,我无法弄清楚我的规则应该如何重写...
感谢帮助!
答案
尝试使用这样的内部UrlEncode{}
:
<action type="Redirect" url="/section/lawyers/{UrlEncode:{R:1}}" />
以上是关于IIS URL重写非英文字符的规则问题的主要内容,如果未能解决你的问题,请参考以下文章
使用反向代理的 IIS URL 重写规则 - HTTP 错误 500.52