Перенаправление на www в IIS7 - классический конвейерный режим - PullRequest
2 голосов
/ 15 декабря 2010

Я хочу реализовать перенаправления на веб-сервере IIS7. По сути, если субдомен не включен в URL, я перенаправлю на субдомен www.

http://mysite.com/file.aspx перенаправляет на http://www.mysite.com/file.aspx

http://mysite.com/image.jpg перенаправляет на http://www.mysite.com/image.jpg

http://mysite.com/text.html перенаправляет на http://www.mysite.com/text.html

Как это сделать?

Я не хочу писать какой-либо модуль HTTP - это нужно делать только через конфигурацию IIS.

Кроме того, я обязан использовать режим Classic Pipeline и не могу установить плагины ISAPI.

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 21 декабря 2010

Это решение сработало для меня:

1) Установить компонент перезаписи URL:

http://www.iis.net/download/urlrewrite

2) Добавить в web.config:

<system.webServer>
 <rewrite>
  <rules>
   <rule name="CanonicalHostNameRule1" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
     <add input="{HTTP_HOST}" pattern="^mysite\.com$" />
    </conditions>
    <action type="Redirect" url="http://www.mysite.com/{R:1}" />
   </rule>
  </rules>
 </rewrite>
</system.webServer>
0 голосов
/ 15 декабря 2010

Вы можете добавить это в свой файл web.config:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Redirect to WWW" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^http://mysite.com$" />
          </conditions>
          <action type="Redirect" url="http://www.mysite.com/{R:0}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

В IIS7 это можно сделать через раздел перезаписи URL.

...