IIS 7.5-URL-Rewrite-Codierung
Habe ich folgende rewrite-Regel im web.config:
<rewrite>
<rules>
<rule name="Search" stopProcessing="true">
<match url="^search/(.+)$" />
<action type="Redirect" url="?q={R:1}" />
</rule>
</rules>
</rewrite>
Es funktioniert gut, sowohl auf IIS Express 8.0 und IIS 7.5 auf Azure-Websites für urls wie /search/test
(nur ascii-Zeichen) - leitet zu einer /?q=test
.
Aber für urls mit unicode-Zeichen (/search/тест
oder /search/%D1%82%D0%B5%D1%81%D1%82
) auf IIS 7.5 auf Azure-Websites umleitet, um /?q=теÑÑ‚
(oder /?q=%C3%91%E2%80%9A%C3%90%C2%B5%C3%91%C2%81%C3%91%E2%80%9A
) statt /?q=%D1%82%D0%B5%D1%81%D1%82
. Es funktioniert einwandfrei auf IIS Express 8.0.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie die interne
{UrlEncode{}}
Funktion richtig zu codieren die Zeichen ungültig sind, in der URL (z.B. UTF-8-Zeichen). So ersetzen Sie den URL-Teil mit:url="?q={UrlEncode:{R:1}}"
.url="?q={UrlEncode:{R:1}}"
. Ich dachte, dass ich dies ausprobiert, aber sieht aus wie ich was anderes probiert.