Url rewriting IIS 7.5 URL重写编码

Url rewriting IIS 7.5 URL重写编码,url-rewriting,iis-7.5,azure-web-app-service,Url Rewriting,Iis 7.5,Azure Web App Service,我在web.config中有以下重写规则: <rewrite> <rules> <rule name="Search" stopProcessing="true"> <match url="^search/(.+)$" /> <action type="Redirect" url="?q={R:1}" /> </rule> </rules> </rewrite

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

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

它在IIS Express 8.0和Azure网站上的IIS 7.5上都可以正常工作,URL类似于
/search/test
(仅限ascii字符)-重定向到
/?q=test

但是,对于Azure网站IIS 7.5上带有unicode字符(
/search/СССС
/search/%D1%D0%B5%D1%81%D1%82
)的URL,会重定向到
/q=cfÐÐÐāāāā
(或
/q=%C3%91%E2 80%9A%C3%90%C2%C2%B5%c5%C3%C3%C3%C3%C3%91%E2 91%80%9A
)而不是<81%D1%D1%D1%D1>/code>/D1%D1%D1%。它在IIS Express 8.0上正常工作

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

谢谢,它可以工作!但是它应该是
url=“?q={UrlEncode:{R:1}}”
。我想我试过这个,但看起来我试过别的。仅供参考: