【问题标题】:IIS URL rewrite rule problems with non-English characters非英文字符的 IIS URL 重写规则问题
【发布时间】:2018-09-05 23:25:20
【问题描述】:

我无法让我的 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>

但是假设我将“lawyers”拼写为“låwyers”(不是一个真实的词!),我怎样才能让它发挥作用?

以下示例均无效:

<match url="^department/låwyers/(.*)" />          [real character]
<match url="^department/l%C3%A5wyers/(.*)" />     [URL encoded 'å']

我错过了什么? This previous question 说您必须使用 {UNENCODED_URL} 变量,但这是否意味着我必须将所有 URL:s 与 ".*" 匹配并将实际匹配逻辑移动到一个条件?如果是这样,我真的无法弄清楚我的规则应该如何相应地重写......

感谢您的帮助!

【问题讨论】:

    标签: iis url-rewriting web-config special-characters


    【解决方案1】:

    尝试像这样使用内部UrlEncode{}

    <action type="Redirect" url="/section/lawyers/{UrlEncode:{R:1}}" />
    

    【讨论】:

    • 谢谢。但是,当有问题的字符位于 URL 文本“lawyers”(例如“låwyers”)中时,即在 {UrlEncode:{R:1}} 之外,这真的会有所帮助吗? &lt;action type="Redirect" url="/section/låwyers/{UrlEncode:{R:1}}" /&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2014-10-27
    • 2014-05-01
    • 1970-01-01
    相关资源
    最近更新 更多