Правила перезаписи языка IIS и язык по умолчанию

Я хочу создать правило перезаписи IIS, основанное на языке браузера пользователя, но только для определенного набора языков.

Наш веб-сайт доступен на английском (en), французском (fr) , и голландский (nl). Я могу создать это правило перезаписи:

<rule name="Redirect short url to long url: NEW SYNTAX 2017-11-01" stopProcessing="true">
    <match url="^([_0-9a-z-]+)$" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="mydomain\.be$" />
        <add input="{HTTP_ACCEPT_LANGUAGE}" pattern="^(en|fr|nl)?" />
    </conditions>
    <action type="Redirect" url="https://www.myotherdomain.be/{C:1}/projects/{R:1}?type=shorturl" appendQueryString="false" redirectType="Found" />
</rule>

Это отлично работает, когда я настраиваю свой браузер на один из трех указанных языков (en / nl / fr). Например, URL http://mydomain.be/test будет перенаправлять на https://www.myotherdomain.be/nl/projects/test?type=shorturl (когда мой браузер настроен на голландском языке).

Но когда я настраиваю свой браузер, например, на «ru», тогда тот же URL будет перенаправлен на https://www.myotherdomain.be//projects/test?type=shorturl

Для любых других языков я хочу по умолчанию использовать длинный URL-адрес / en / вместо // Есть ли способ сделать это с помощью правил перезаписи IIS?

Заранее благодарим за любые указания!

1
задан 30 October 2017 в 17:05
1 ответ

Для информации: Я решил свою проблему, добавив правило перезаписи всех запросов, которое перенаправляет все запросы на одну страницу .aspx. На этой странице .aspx я могу обработать правильную логику перенаправления с помощью C # во внутреннем коде.

0
ответ дан 4 December 2019 в 04:29

Теги

Похожие вопросы