Проблемы правил перезаписи URL в IIS с неанглийскими символами - PullRequest
0 голосов
/ 05 сентября 2018

У меня проблемы с получением правил 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>

Но предположим, что я бы назвал "юристов" как "юристов" (ненастоящее слово!), Как я могу заставить его работать?

Ни один из приведенных ниже примеров не работает:

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

Чего мне не хватает? Этот предыдущий вопрос говорит, что вы должны использовать переменную {UNENCODED_URL}, но означает ли это, что я должен сопоставить все URL: s с ".*" и вместо этого переместить действительную логику сопоставления в условие? Если это так, я не могу понять, как следует переписать мое правило ...

Спасибо за помощь!

1 Ответ

0 голосов
/ 05 сентября 2018

Попробуйте использовать внутренний UrlEncode{}, например:

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