Назад | Перейти на главную страницу

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?

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

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