【问题标题】:IIS 7.5 URL Rewrite encodingIIS 7.5 URL 重写编码
【发布时间】:2013-01-06 17:52:52
【问题描述】:

我在 web.config 中有以下重写规则:

<rewrite>
  <rules>
    <rule name="Search" stopProcessing="true">
      <match url="^search/(.+)$" />
      <action type="Redirect" url="?q={R:1}" />
    </rule>
  </rules>
</rewrite>

它在 Azure 网站上的 IIS Express 8.0 和 IIS 7.5 上都可以正常工作,例如 /search/test(仅 ascii 字符)之类的 URL - 重定向到 /?q=test。 但是对于 Azure 网站上的 IIS 7.5 上带有 unicode 字符(/search/тест/search/%D1%82%D0%B5%D1%81%D1%82)的 URL,重定向到 /?q=теÑÑ‚(或 /?q=%C3%91%E2%80%9A%C3%90%C2%B5%C3%91%C2%81%C3%91%E2%80%9A)而不是 /?q=%D1%82%D0%B5%D1%81%D1%82。它在 IIS Express 8.0 上正常工作。

【问题讨论】:

    标签: url-rewriting iis-7.5 azure-web-app-service


    【解决方案1】:

    您应该使用内部 {UrlEncode:{}} 函数正确编码 URL 中无效的字符(例如 UTF-8 字符)。所以将 URL 部分替换为:url="?q={UrlEncode:{R:1}}"

    【讨论】:

    猜你喜欢
    • 2012-05-23
    • 2015-05-11
    • 1970-01-01
    • 2011-10-21
    • 2013-07-26
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多