ASP.NET MVC 2: сделать переадресацию зависимой от культуры перед запуском маршрутов. Например: / Home => / en / us / Home - PullRequest
2 голосов
/ 25 ноября 2010

Я хочу сделать несколько перенаправлений:

/Home => /en/us/Home
/ => en/us/

Где я должен поместить эти перенаправления и как я должен перенаправить, чтобы избежать бесконечного цикла? Вместо этого en / us я хочу извлечь значения, которые отправляет пользовательский браузер.

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

1 Ответ

1 голос
/ 25 ноября 2010

Эти вещи идут в web.config.Посмотрите на эту статью .Это для IIS7, но я думаю, что II6 также поддерживает это.

В вашем случае вы бы добавили что-то подобное в web.config:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="rule1" stopProcessing="true">
                <match url=".*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{URL}" pattern="^en/us/?" negate="true" />
                </conditions>
                <action type="Redirect" url="/en/us/{R:0}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

Это поймает все ваши не /ru / us URL-адреса и перенаправьте их на URL-адрес, который начинается с / en / us / и на то, что когда-либо было в исходном URL-адресе.

Обратите внимание, что в нем нет возможности проверить фактическое местоположение пользователя.Для этого вам, вероятно, придется использовать некоторую логику.

...