Перенаправление URL-адреса IIS7 из корневого каталога в подкаталог

Я использую Windows Server 2008 с IIS7. Мне нужно перенаправить пользователей, которые приходят на www.mysite.com до wwww.mysite.com/menu_1/MainScreen.aspx. Вот структура файлов, которые у меня есть для проектов:

-Sites
 -Default Web Site
  -Menu_1
  -MenuService
  -VscWebService

Я буду очень признателен за любую помощь в этом.

Ответ 1

Вот он. Добавьте этот код в файл web.config:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Root Hit Redirect" stopProcessing="true">
                <match url="^$" />
                <action type="Redirect" url="/menu_1/MainScreen.aspx" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

Это будет 301 Перманентный Перенаправление (URL будет изменен в браузере). Если вы хотите, чтобы такое "перенаправление" было невидимым (перепишите, внутреннее перенаправление), используйте это правило (единственное отличие в том, что "Перенаправление" заменено "Переписывать" ):

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Root Hit Redirect" stopProcessing="true">
                <match url="^$" />
                <action type="Rewrite" url="/menu_1/MainScreen.aspx" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

Ответ 2

Я думаю, это можно было бы сделать без модуля перезаписи URL-адреса IIS. <httpRedirect> поддерживает подстановочные знаки, поэтому вы можете настроить его следующим образом:

  <system.webServer>
    <httpRedirect enabled="true">
      <add wildcard="/" destination="/menu_1/MainScreen.aspx" />
    </httpRedirect>
  </system.webServer>

Обратите внимание, что вам нужно включить функцию "Перенаправление HTTP" в IIS - см. HTTP-переадресация

Ответ 3

Я не мог заставить это работать с принятым ответом, главным образом потому, что я не знал, где ввести этот код. Я везде искал объяснения инструмента URL Rewrite, который имел смысл, но не смог найти. Я закончил использование инструмента HTTP Redirect в IIS.

  • Выберите свой сайт
  • Нажмите "Перенаправить HTTP" в разделе IIS (убедитесь, что установлена ​​служба ролей).
  • Проверить "Перенаправить запросы в этот пункт назначения"
  • Введите, где вы хотите перенаправить. В вашем случае "wwww.mysite.com/menu_1/MainScreen.aspx"
  • В Redirect Behavior я обнаружил, что мне нужно было проверить "Только перенаправить запросы к контенту в этом каталоге (не поддиректории), или он перейдет в цикл. Посмотрите, что работает для вас.

Надеюсь, это поможет.

Ответ 4

Вам нужно загрузить это из Microsoft: http://www.microsoft.com/en-us/download/details.aspx?id=7435.

Этот инструмент называется "Microsoft URL Rewrite Module 2.0 для IIS 7" и описан Microsoft следующим образом: "Модуль URL Rewrite 2.0 предоставляет механизм перезаписи, основанный на правилах, для изменения запрашиваемых URL-адресов, прежде чем они будут обработаны веб-сервером и для изменения содержимого ответа до того, как он будет передан HTTP-клиентам"