IIS Url Rewriter: перенаправить коды языков - PullRequest
0 голосов
/ 06 апреля 2019

Я создал веб-сайт для клиента на разных языках, URL-адреса выглядели как

https://www.example.com/en-US/Something/More
https://www.example.com/de-DE/Etwas/Mehr
https://www.example.com/fr-FR/Quelquechose/plus

и т. Д.

Проблема в том, что клиенту нужны языковые коды типа / en /, / де / и / фр / сейчас.Нет проблем, чтобы изменить, но страницы были перечислены в Google довольно хорошо и в настоящее время приводит к 404 страниц.

Сайт работает на IIS, это приложение ASP.Net.

Может кто-нибудьподскажите, пожалуйста, как определить правило перезаписи (перенаправления) для включения в файл web.config, который перенаправляет все URL-адреса, например

http(s)://www.example.com/en-US[/...]

на

http(s)://www.example.com/en[/...]

Я пробовал разные вещи, ноу меня ничего не получалось.Проблема в том, что я не хорош в регулярных выражениях, извините.

1 Ответ

1 голос
/ 07 апреля 2019

Либо создайте 3 правила, которые выглядят следующим образом:

<rewrite>
    <rules>
        <rule name="RedirectEnglish" stopProcessing="true">
            <match url="en-US(.*)" />
            <action type="Redirect" url="en{R:1}" redirectType="Temporary" />
        </rule>
    </rules>
</rewrite>

Или попробуйте что-нибудь более причудливое, например

<rewrite>
    <rules>
        <rule name="RedirectEnglish" stopProcessing="true">
            <match url="(en|de|fr)-[A-Za-z]{2}(.*)" />
            <action type="Redirect" url="{R:1}{R:2}" redirectType="Temporary" />
        </rule>
    </rules>
</rewrite>

Возможно, вам потребуется настроить второе, и его стоит изучитьнемного о регулярных выражениях.Найдите онлайн-тестер регулярных выражений, попробуйте некоторые значения и убедитесь, что материал, который вы хотите, соответствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...