Я хочу создать правило перезаписи 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 # во внутреннем коде.