Как перенаправить URL-путь в IIS?

в IIS 6.0 есть простой способ перенаправить запросы в папку в другую папку, сохраняя при этом остальную часть пути.

например

Если я переместил содержимое:
мистит.орг.uk / stuff
к
вещи.мистит.орг.uk/

могу ли я автоматически перенаправлять запросы на определенные страницы как
mysite.org.uk/stuff/countrybriefing/tanzania/travel.html
к
stuff.mysite.org.uk/countrybriefing/tanzania/travel.html

Я знаю, что .htaccess может делать такие вещи в Apache, есть ли эквивалент в IIS?

4 ответов


принято от Microsoft Technet.

перенаправление веб-сайтов в IIS версии 6.0 (IIS 6.0)


когда браузер запрашивает страницу или программу на вашем веб-сайте, Веб-сервер находит страницу, указанную URL-адресом, и возвращает ее в браузер. При перемещении страницы на веб-сайте не всегда можно исправить все ссылки, ссылающиеся на старый URL-адрес страницы. Чтобы убедиться, что браузеры могут найти страницу по новому адресу, вы можете веб-сервер, чтобы перенаправить на новый URL-адрес.

вы можете перенаправлять запросы на файлы в одном каталоге в другой каталог, на другой веб-сайт или в другой файл в другом каталоге. Когда браузер запрашивает файл по исходному URL-адресу, веб-сервер указывает браузеру запросить страницу с помощью нового URL-адреса.

важно

вы должны быть членом группы администраторов локальном компьютере выполнить следующие процедуры. В целях безопасности рекомендуется войти в систему с помощью учетной записи, не входящей в группу "Администраторы", а затем с помощью команды runas запустить Диспетчер IIS от имени администратора. В командной строке введите runas /user:Administrative_AccountName "mmc %systemroot%\system32\inetsrv\iis.магистр."

процедуры

перенаправлять запросы на другой веб-сайт или каталог


  1. в Диспетчере IIS разверните локальный компьютер, щелкните правой кнопкой мыши веб-узел или каталог, который требуется перенаправить, и выберите Свойства.

  2. перейдите на вкладку домашний каталог, виртуальный каталог или каталог.

  3. по материалам этого источника выберите перенаправление на URL-адрес.

  4. в поле перенаправление на введите URL-адрес целевого каталога или веб-страницы сайт. Например, чтобы перенаправить все запросы на файлы в каталоге каталога в каталог NewCatalog, введите /NewCatalog.

перенаправить все запросы в один файл


  1. в Диспетчере IIS разверните локальный компьютер, щелкните правой кнопкой мыши веб-узел или каталог, который требуется перенаправить, и выберите Свойства.

  2. щелкните домашний каталог, виртуальный каталог или каталог табуляция.

  3. по материалам этого источника выберите перенаправление на URL-адрес.

  4. в поле перенаправление на введите URL-адрес файла назначения.

  5. установите флажок точный URL-адрес, указанный выше, чтобы запретить веб-серверу добавлять исходное имя файла к целевому URL-адресу.

    вы можете использовать подстановочные знаки и перенаправлять переменные в URL-адресе назначения, чтобы точно контролировать, как исходный URL-адрес переводится в целевой URL-адрес.

    вы также можете использовать метод перенаправления для перенаправления всех запросов на файлы в определенную папку программы. Как правило, вы должны передать любые параметры из исходного URL-адреса в программу, что можно сделать с помощью переменных перенаправления.

    перенаправлять запросы в программу


  6. в Диспетчере IIS разверните локальный компьютер, щелкните правой кнопкой мыши веб-узел или каталог вы хотите перенаправить и нажмите "Свойства".

  7. перейдите на вкладку домашний каталог, виртуальный каталог или каталог.

  8. по материалам этого источника выберите перенаправление на URL-адрес.

    в поле перенаправить в введите URL-адрес программы, включая любые переменные перенаправления, необходимые для передачи параметров программе. Например, перенаправление всех запросов скриптов в каталоге скриптов в программу ведения журнала который записывает запрошенный URL и любые параметры, переданные с URL, введите /Scripts/Logger.exe?URL=$V+PARAMS=$P. $V и $P-переменные перенаправления.

  9. установите флажок точный URL-адрес, указанный выше, чтобы запретить веб-серверу добавлять исходное имя файла к целевому URL-адресу.


отформатируйте URL перенаправления следующим образом:

stuff.mysite.org.uk$S$Q

на $S скажу, что любой путь должен быть применен к новому URL-адресу. $Q говорит, что любые переменные параметров должны быть переданы в новый URL.

в IIS 7.0, необходимо включить опцию Redirect to exact destination. Я считаю, что в IIS 6.0 тоже должен быть такой вариант.


Если у вас есть множество перенаправлений для создания, наличие нагрузок виртуальных каталогов по местам-это кошмар для поддержания. Вы можете попробовать использовать ISAPI перенаправить расширение IIS. Тогда все, что вы перенаправляете, управляется в одном месте.

http://www.isapirewrite.com/docs/

Он также позволяет вам сопоставлять шаблоны на основе выражений reg ex и т. д. Я использовал, где мне пришлось перенаправить 100 страниц, и это сэкономило много времени.


вот конфигурация для ISAPI_Rewrite 3:

RewriteBase /

перезаписать % {HTTP_HOST} ^mysite.орг.uk$ [NC]

RewriteRule ^stuff/(.+ ) $ http://stuff.mysite.org.uk / $1 [NC, R=301, L]