Лучший способ перенаправить сайты в IIS 7 - PullRequest
4 голосов
/ 13 июля 2011

Каков наилучший способ убедиться, что все страницы, попадающие на хостинг веб-сайтов в IIS 7, перенаправляются с помощью www.поддомен ... примеры ниже:

http://site.com ==> http://www.site.com

или

http://site.com/somepage.html ==> http://www.site.com/somepage.html

1 Ответ

5 голосов
/ 14 июля 2011

Это правило будет перенаправлять (301 постоянное перенаправление) все запросы на http://site.com/somepage.html в http://www.site.com/somepage.html (будет работать, если имя домена = site.com):

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Force www" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^site\.com$" />
                </conditions>
                <action type="Redirect" url="http://www.site.com/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

Этот будет делать то же самое, нобудет перенаправлять с ЛЮБОГО SUBDOMAIN на www (например, hello.site.com => www.site.com):

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Force www" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^www\.site\.com$" negate="true" />
                </conditions>
                <action type="Redirect" url="http://www.site.com/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

ПРИМЕЧАНИЯ:

  1. Вам потребуется модуль URL Rewrite v2присутствовать (должен работать и с v1.x, но я не могу его протестировать - только вокруг v2).

  2. (Очевидно), ваш сайт должен принимать эти субдомены не-www.

  3. Это правило необходимо поместить в web.config в папке root .

...