Как добавить строку запроса для отображения языка пользователя (? Lang = es-MX) с помощью IIS7 Rewrite 2.0? - PullRequest
1 голос
/ 30 января 2012

У меня есть веб-сайт (Visual Studio / VB / ASP.NET 4.0), и он локализован на 9 разных языках, поэтому в моем каталоге Apps_GlobalResources 9 разных файлов .resx. языки прекрасно работают , и конечный пользователь может вручную выбрать язык, который он хочет просмотреть.

Проблема:

Когда пользователь, например, находится на домашней странице, он находится в домене / default.aspx.Когда они переключаются на испанский - мексиканский, страница переключается на испанский - мексиканский, но URL остается прежним - domain / default.aspx .

Многие рекомендуют мне показыватьконечный пользователь строка запроса.Поэтому я хочу, чтобы URL выглядел как domain / default.aspx? Lang = es-MX или domain // es-MX / default.aspx (предпочтительно).

Поскольку все мои файлы ресурсов на месте, можно ли это сделать с помощью инструмента перезаписи II7 ?Если да, то может кто-нибудь объяснить, как я могу это сделать?Я не знаком с ведением переговоров IIS.Спасибо, и я искренне признателен за любые рекомендации, которые вы можете предложить!

1 Ответ

0 голосов
/ 30 января 2012

вы можете изменить файлы web.config, и он будет обрабатывать перезапись для вас:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="rule1" stopProcessing="true">
                 <match url="^(.*)-htm-(.*)" />
                 <action type="Rewrite" url="{R:1}.php?{R:2}" />
            </rule>
            <rule name="rule2" stopProcessing="true">
                <match url="^(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html" />
                <action type="Rewrite" url="{R:1}/show.php?itemid={R:2}&page={R:4}"  />
            </rule>
            <rule name="rule3" stopProcessing="true">
                <match url="^(.*)/list-([0-9]+)([\-])?([0-9]+)?\.html" />
                <action type="Rewrite" url="{R:1}/list.php?catid={R:2}&page={R:4}"  />
            </rule>
            <rule name="rule4" stopProcessing="true">
                <match url="^(.*)/show/([0-9]+)/([0-9]+)?([/])?" />
                <action type="Rewrite" url="{R:1}/show.php?itemid={R:2}&page={R:3}"  />
            </rule>
            <rule name="rule5" stopProcessing="true">
                <match url="^(.*)/list/([0-9]+)/([0-9]+)?([/])?" />
                <action type="Rewrite" url="{R:1}/list.php?catid={R:2}&page={R:3}"  />
            </rule>
            <rule name="rule6" stopProcessing="true">
                <match url="^([a-z0-9]+)\.co/(.*)" />
                <action type="Rewrite" url="company/index.php?homepage={R:1}&rewrite={R:2}"  />
            </rule>
            <rule name="rule7" stopProcessing="true">
                <match url="^(htm)/(.*)" />
                <action type="Rewrite" url="index.php?rewrite={R:2}"  />
            </rule>
        </rules>
    </rewrite>
</system.webServer>         

вот что вы можете прочитать: http://gyansangrah.com/ArticleContent.aspx?ID=URLREWRITINGUSINGHTTPMODULES

...