【问题标题】:IIS URL Re-write module with foreign text带有外来文本的 IIS URL 重写模块
【发布时间】:2013-01-01 17:51:55
【问题描述】:

我们使用 IIS URL Re-write 模块,像这样

<rule name="RewriteSearch" stopProcessing="true">
<match url="^Search/([_0-9a-z+-]+)" />
<action type="Rewrite" url="CommonPages/Search.aspx?term={R:1}" />
</rule>

http://www.tickettail.com/Search/NormalText123 工作正常

但是……

http://www.tickettail.com/Search/ราคัดมาใ

(这是泰语) 将不会。 如何修改匹配以允许使用外来文本?

谢谢

【问题讨论】:

    标签: asp.net url-rewriting iis-7.5 httpmodule


    【解决方案1】:

    您要匹配的正则表达式只接受字符_09az+-。为了接受所有字符,您必须将正则表达式修改为例如(.+)(接受任何字符,至少需要一个字符。

    其次,为了将任何字符正确传递到搜索页面,您必须使用内置的{UrlEncode:{}} 函数对该术语进行 URL 编码。还要确保您的页面可以处理和输出 UTF-8。

    以下规则有效:

    <rule name="RewriteSearch" stopProcessing="true">
        <match url="^Search/(.+)" />
        <action type="Rewrite" url="CommonPages/Search.aspx?term={UrlEncode:{R:1}}" />
    </rule>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-04
      • 2012-06-01
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      • 1970-01-01
      • 2017-08-07
      • 2018-08-26
      相关资源
      最近更新 更多