Iis перенаправление запросов в программу


Содержание

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

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

Если я переместил содержимое с:
mysite.org.uk/stuff
для изображения stuff.mysite.org.uk/

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

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

    2 4
  • 5 окт 2020 2020-10-05 01:03:51
  • codeulike

4 ответа

RewriteCond% ^ mysite.org.uk $[NC]

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

  • 5 окт 2020 2020-10-05 01:03:53
  • TonyCool

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

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

  • 5 окт 2020 2020-10-05 01:03:53
  • Jon Jones

Отформатируйте URL-адрес переадресации следующим образом:

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

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

  • 5 окт 2020 2020-10-05 01:03:52
  • Nirmal

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

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

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

Вы должны быть членом группы «Администраторы» на локальном компьютере для выполнения следующей процедуры или процедур. В качестве лучшей практики безопасности войдите в систему на своем компьютере, используя учетную запись, которой нет в группе «Администраторы», а затем используйте команду runas для запуска диспетчера IIS в качестве администратора. В командной строке введите runas/user: Administrative_AccountName «mmc% systemroot%system32inetsrviis.msc».

Процедуры

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

В диспетчере IIS разверните локальный компьютер, щелкните правой кнопкой мыши веб-сайт или каталог, который вы хотите перенаправить, и нажмите «Свойства» .

Перейдите на вкладку Home Directory, Virtual Directory или Directory.

В разделе Содержимое для этого источника должно появиться, щелкните Перенаправление на URL.

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

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

В диспетчере IIS разверните локальный компьютер, щелкните правой кнопкой мыши веб-сайт или каталог, который вы хотите перенаправить, и нажмите «Свойства» .

Перейдите на вкладку Home Directory, Virtual Directory или Directory.

В разделе Содержимое для этого источника должно появиться, щелкните Перенаправление на URL.

В поле «Перенаправить» введите URL-адрес целевого файла.

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

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

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

Чтобы перенаправить запросы в программу

В диспетчере IIS разверните локальный компьютер, щелкните правой кнопкой мыши веб-сайт или каталог, который вы хотите перенаправить, и нажмите «Свойства» .

Перейдите на вкладку Home Directory, Virtual Directory или Directory.

В разделе Содержимое для этого источника должно появиться, щелкните Перенаправление на URL.

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

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

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


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

Если я переместил контент из:
mysite.org.uk/stuff
в
stuff.mysite.org.uk/

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

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

4 ответа

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

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

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

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

процедуры

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

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

Нажмите Домашний каталог, Виртуальный каталог или вкладку Каталог.

В разделе «Содержимое этого источника» выберите «Перенаправление на URL-адрес».

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

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

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

Нажмите Домашний каталог, Виртуальный каталог или вкладку Каталог.

В разделе «Содержимое этого источника» выберите «Перенаправление на URL-адрес».

В поле Redirect to введите URL целевого файла.

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

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

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

Перенаправить запросы в программу

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

Нажмите Домашний каталог, Виртуальный каталог или вкладку Каталог.

В разделе «Содержимое этого источника» выберите «Перенаправление на URL-адрес».

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

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

Временно перенаправить * все * HTTP /HTTPS-запросы в IIS на страницу «Обслуживание сервера»

У нас есть сервер IIS, на котором размещаются сотни отдельных веб-приложений, а физический сервер базы данных, на котором размещаются эти приложения, будет отключен для обслуживания на короткий период (мы ожидаем, что он займет менее 15 минут) .

В течение этого периода мы хотим перенаправить весь трафик, который поступает на любой сайт, на страницу «Мы в настоящее время обслуживаем».

Я понимаю, что могу сделать это, перейдя в каждое веб-приложение и настроив правило перезаписи IIS, которое отправляет пользователя на другую страницу для всех запросов в этом приложении. Но для этого потребуется больше времени, чем при обслуживании базы данных!

Я пробовал три вещи, ни один из которых не работал:

Глобальное правило перезаписи IIS

Я искал простой способ применить правило к всем сайтам одним махом — и затем сможет «отменить» это правило на одном равномерном шаге. Пока что ни одна из моих попыток не сработала. Я попытался поместить это правило перезаписи в свой глобальный web.config в W: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ web.config:

Это не сработало. Мы используем 64-разрядную версию .NET 4.0 в IIS, но «на всякий случай» я поставил то же самое в 32-битных и 2.0 глобальных файлах web.config и до сих пор не изменился.

App_Offline.htm «специальный файл»

Еще одно предложение, которое я видел, это app_offline. htm «специальный» файл , но мы вернулись к той же проблеме, что и дольше развертывать этот файл в корне приложения всех наших приложений, чем на самом деле для обслуживания.

«Мы в автономном режиме» Сайт в IIS

Все наши сайты настроены в IIS с одним IP-адресом. Это работает для нас даже без SNA, потому что все наши приложения имеют один сертификат SSL (это UCC). Одна вещь, которая пришла мне в голову, заключалась в том, что, возможно, я мог бы настроить сайт в IIS, который соответствовал бы всем трафику для используемого IP-адреса, а не указывал значение заголовка хоста. Надежда состояла в том, что я мог бы дать ему более высокий «приоритет» и что при запуске он будет соответствовать всему трафику для этого IP-адреса, прежде чем какой-либо из других сайтов будет соответствовать. Я могу настроить этот сайт для обслуживания одной и той же страницы для всех запросов, независимо от URL-адреса запроса.

Илон Маск рекомендует:  Что такое код createrectrgn

Запустите этот сайт при обслуживании и остановите его, когда закончите.

Но я тоже не смог получить эту работу, поскольку IIS, похоже, соответствует HTTP-запросу на более конкретный сайт до менее специфического. Поэтому, опуская значение заголовка хоста для этого сайта «сообщать пользователям, что мы в автономном режиме», он не получил соответствия, если у запроса не было значения заголовка хоста, которое соответствовало другому сайту. Это подталкивает нас к той же проблеме, связанной с необходимостью вручную переходить к каждому веб-приложению и выполнять действие, чтобы отключить его, а затем вернуть его онлайн, когда мы закончим обслуживание

Есть ли простой способ сделать это? Казалось бы, мы, конечно, не первые сталкиваемся с этой проблемой.

Страница «Перенаправление HTTP»

Используйте страницу компонента Перенаправление HTTP, чтобы включить перенаправление и настроить способ перенаправления входящих запросов в новое место назначения.

Список элементов пользовательского интерфейса

В следующих таблицах содержатся описания элементов интерфейса, которые доступны на странице компонента и на панели Действия.

Элементы страницы компонента

Запросы на перенаправление по следующему назначению

Выберите этот параметр, чтобы включить перенаправление и задать URL-адрес, по которому будут перенаправляться запросы. Запросы могут перенаправляться по виртуальному пути, такому как http://www.contoso.com/sales, или в файл, например http://www.contoso.com/sales/default.aspx.

Перенаправлять все запросы по абсолютному назначению (а не относительно назначения)

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


Когда этот параметр не выбран, назначение определяется относительно значения, указанного в параметре Запросы на перенаправление по следующему назначению. Например, если при настройке определяется, что перенаправлением назначения является http://www.contoso.com/sales, и входящим запросом является http://www.contoso.com/marketing/default.aspx, службы IIS будут перенаправлять этот запрос в http://www.contoso.com/sales/default.aspx.

Запросы на перенаправление содержимого только этого каталога (без подкаталогов)

Выберите этот параметр, когда требуется, чтобы клиенты перенаправлялись к содержимому только в каталог, указанный в поле Запросы на перенаправление по следующему назначению.

Когда этот параметр не выбран, запросы перенаправляются в местоположение, указанное в поле Запросы на перенаправление по следующему назначению, и любой подкаталог, находящийся ниже этого местоположения. Например, если при настройке определяется, что перенаправлением назначения является http://www.contoso.com/sales, запросы могут обслуживаться из каталогов, расположенных ниже /sales, когда параметр Перенаправлять все запросы по абсолютному назначению (а не относительно назначения) также не был выбран.

Выберите один из следующих параметров, чтобы задать код состояния перенаправления, который отправляется клиентам:

    Найдено (302) – предписывает веб-клиенту выдать новый запрос для этого местоположения. Этот параметр установлен по умолчанию.

Постоянное (301) – сообщает веб-клиенту, что местоположение запрошенного ресурса было изменено постоянно.

Временное (307) – предохраняет веб-браузер от потери данных, когда он отправляет запрос HTTP POST .

Элементы панели «Действия»

Имя элемента Описание

Позволяет сохранить изменения, внесенные на странице компонента.

Позволяет отменить изменения, внесенные на странице компонента.

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

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

Если я переместил содержимое от:
mysite.org.uk/stuff
до
stuff.mysite.org.uk/

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

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

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

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

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

Перенаправление веб-узлов в IIS 6.0 (IIS 6.0)

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

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

Вы должны быть членом группы администраторов на локальном компьютере, чтобы выполнить следующую процедуру или процедуру. В целях безопасности, необходимо войти на компьютер с помощью учетной записи, которая не входит в группу администраторов, а затем использовать RunAs команду для запуска диспетчера IIS в качестве администратора. В командной строке RunAs типа / пользователь: Administrative_AccountName «ММС% SystemRoot% \ system32 \ Inetsrv \ iis.msc».

процедуры

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

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

Нажмите Домашний каталог, Виртуальный каталог или вкладку Directory.

Под содержанием для этого источника должно исходить от, нажмите Перенаправление на URL.

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

Для того, чтобы перенаправить все запросы на один файл

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

Нажмите Домашний каталог, Виртуальный каталог или вкладку Directory.

Под содержанием для этого источника должно исходить от, нажмите Перенаправление на URL.

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

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

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

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

Для того, чтобы перенаправить запросы на программу

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

Нажмите Домашний каталог, Виртуальный каталог или вкладку Directory.

Под содержанием для этого источника должно исходить от, нажмите Перенаправление на URL.

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

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

Iis перенаправление запросов в программу

Простите но возможно я повторяюсь, и возможно уже есть такой вопрос. но я его найти не смог.

Есть 2 сервера на одном поднята iis на второй стоит апач.

Вкратце, нужно сделать перенаправление

что-бы при заходе на http://www.localhost.ru/ заходила на сайт сервера на котором поднята IIS

а при заходе на http://www.localhost.ru:8080/ заходила на сайт сервака на котором поднята Apache

нашел одну статью в которой сказано что нужно поднять виртуальный сервер для переадресации запроса в iis. Но описания как это сделать в статье не нашел.

IIS URL Rewrite Module 2 : 10 полезных советов


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

1. Добавление или удаление завершающего символа наклонной черты (слэша)

Многие веб-приложения используют виртуальные URL – это адреса, которые на самом деле не сопоставлены с реальными каталогами или файлами на сервере. Примером такого веб-приложения на ASP.NET MVC можно считать http://stackoverflow.com/questions/60857/modrewrite-equivalent-for-iis-7-0 на PHP примером может служить следующий адрес: http://ruslany.net/2008/11/url-rewrite-module-release-to-web/. Если вы запросите эти адреса с или без завершающего символа наклонной черты вы получите одну и ту же страницу. Это поведение вполне нормально для посетителей, но может создать проблему для поисковых систем или систем аналитики. Разные URL для одной страницы могут трактоваться такими системами как разные страницы, что в свою очередь может повлиять на ранг страницы и аналитические данные.

Эту проблему крайне легко исправить написав правило переопределения URL. Располагать или нет завершающий слэш в адресе – это больше дело вкуса, но сделав один выбор вы можете определить правило, которое всегда отображает URL в одном виде.

Правило для того чтобы всегда удалять завершающий слэш:

Правило для того чтобы всегда дополнять URL завершающим слэшем:

2. Приведение URL к нижнему регистру

Проблема похожая на проблему с завершающим слэшем возникает когда кто-нибудь ссылается на вашу страницу с разным регистром букв, например: http://ruslany.net/2008/07/IISNET-Uses-Url-Rewrite-Module/ вместо http://ruslany.net/2008/07/iisnet-uses-url-rewrite-module/. В этом случае поисковые и аналитические системы могут трактовать эти URL как разные страницы.

Для того чтобы исправить URL и привести все его символы в нижний регистр вы можете воспользоваться следующим правилом:

3. Канонические имена сайтов

Очень часто одному сайту соответствуют несколько имен. Наиболее распространенный пример: http://www.yoursitename.com и http://yoursitename.com. Другой пример: вы можете изменить имя своего сайта на новое, но хотите чтобы посетители со старого имени переходили на новое.

Очень простой правило поможет решить эти задачи:

Для примера того, как работает это правило вы можете перейти по адресу http://www.ruslany.net/2008/10/aspnet-postbacks-and-url-rewriting/ и убедиться, что “www” убрано из имени сайта.

4. Перенаправление на HTTPS

Когда происходит обращение к сайту по HTTP, который требует соединение через HTTPS по защищенному каналу, сервер IIS вернет ошибку с кодом HTTP 403 (Unauthorized). Вы можете надеяться, что ваши посетители всегда будут вводить https в строку адреса. Однако, если вы хотите чтобы ваш сайт был более простым в посещении и более дружелюбным вы можете перенаправлять посетителей на правильный адрес, вместо того, чтобы сообщать им об ошибке. Типичный пример сайт http://www.paypal.com, если вы перейдете по этому адресу, то увидите, что ваш браузер перенаправил вас на https://www.paypal.com.

С помощью URL Rewrite Module вы можете легко решить эту задачу:

5. Возврат кода HTTP 503

Код возврата со статусом HTTP 503 означают, что сервер не может обработать запрос в данный момент в связи с проведением технических работ. Этот код говорит о том, что сайт не работает временно, так что поисковые системы получив этот код не будут индексировать сайт, а вернуться к нему позднее. Когда вы останавливаете пул приложения в IIS, сервер будет автоматически возвращать на все запросы ответ со статусом HTTP 503. Но что если вам не нужно останавливать весь сайт и вы хотите провести технические работы только в одном из разделов?

С помощью URL Rewrite Module вы можете создать правило, которое решает эту задачу:

6. Предотвращение сторонних ссылок на изображения сайта (Image Hotlinking)

Сторонние ссылки на изображения сайта (Image Hotlinking) – это использование изображений с вашего сайта для отображения их на других ресурсах в интернете. Такое неконтролируемое использование изображений увеличивает нагрузку на канал передачи данных для вашего сайта. Кроме того, существуют другие проблемы с подобным использованием, например, права на копирование изображений.

С помощью URL Rewrite Module вы можете легко предотвратить несанкционированное использование изображений с вашего сайта:

Это правило будет перенаправлять все запросы со сторонних сайтов на специальное изображение расположенное по адресу /images/say_no_to_hotlinking.jpg.

7. Обратный прокси для другого сайта или сервера

Используя URL Rewrite Module вместе с Application Request Routing вы можете заставить работать IIS в режиме обратного прокси-сервера. Например, в можете захотеть опубликовать содержимое ресурса из локальной сети в интернет. Для того, чтобы это осуществить необходимо проделать несколько шагов:

  1. Убедитесь, что переключатель Enable proxy включен в функции Application Request Routing в IIS Manager;
  2. Добавьте следующее правило на сайт, который будет являться прокси-сервером и будет принимать запросы:

Обратите внимание на префикс “http://” в правиле. Употребление этого префикса говорит системе URL Rewrite о необходимости использовать механизм прокси вместо перезаписи адреса. Когда Rewrite-правило содержит URL с префиксом протокола, то URL Rewrite Module не осуществляет стандартную логику по перезаписыванию URL. Вместо этого, запрос будет перенаправлен в модуль Application Request Routing, который в свою очередь осуществит прокси-запрос на адрес указанный в правиле.

8. Обратный прокси и HTTPS

Правило в предыдущем совете всегда использует незащищенное соединение по HTTP. Однако часто необходимо сохранить возможность запросов по протоколу HTTPS. Это может быть достигнуто следующим правилом:

9. Перезапись или перенаправление на основе параметров запроса

Следующее правило демонстрирует как два различных параметра запроса извлекаются из строки и используются в перезаписи URL:

Согласно этому правилу запрос с параметрами page.asp?p2=321&p1=123 будет перезаписан как newpage.aspx?param1=123&param2=321.

10. Как избежать перезаписи запросов для ресурсов ASP.NET

Приложения на основе ASP.NET часто создают запросы к файлу WebResources.axd для получения разных ресурсов. Однако такого файла на сервере не существует и все запросы к нему в ASP.NET обрабатываются динамически. Поэтому некоторые правила перезаписи адресов могут порушить приложение, перезаписав запрос к WebResources.axd.

Эта проблема может быть легко решена на основе простого добавления еще одного условия в правило:

Перенаправление запроса IIS

Добрый день коллеги!
Имеется сервер 1, на котором поднята IIS.
Сервер 2, на котором так же поднята IIS и сервер 1С предприятия. Внешнее взаимодействие полностью отключено. По внутренней сети доступен только 80 порт..
Из интернета есть доступ к серверу 1
Требуется чтобы делался запрос http://server1.ru/base1/
Чтобы он переадресовывался на http://server2.ru/base1/
И возвращал результат. при этом чтобы для запрашиваемого оставался прозрачным адрес http://server1.ru/base1/

Скажите пожалуйста, как можно сделать переадресацию запроса в IIS.

Основы архитектуры IIS, или запросопровод для ASP.NET

В прошлом году мне пришлось отсобеседовать около 10-15 кандидатов на должность веб-программиста на ASP.NET средней квалификации. В качестве вопросов «на засыпку», или «со звёздочкой», я просил рассказать, что происходит с HTTP-запросом от момента его поступления на 80-й порт сервера до передачи управления коду aspx-страницы. Статистика была удручающей: ни один из кандидатов не смог выдать хоть что-нибудь внятное. И этому есть своё объяснение: ни в MSDN с technet, ни на специализированном ресурсе iis.net, ни в книгах a-la «ASP.NET для профессионалов», ни в блогах данной теме не уделяется должного внимания – информацию приходится собирать чуть ли не по крупицам. Я даже знаю людей, которые решили написать свой собственный веб-сервер (Игорь, Георгий, привет!), чтобы не разбираться в работе IIS. Единственная толковая статья – «Introduction to IIS Architectures» Риган Темплин (Reagan Templin). Но и она остаётся на периферии интересов аспнетчиков.

Хотя мне лично уже не так интересны чисто технические вопросы, я решил собрать в кучу свой накопленный опыт, раскопать на просторах Сети любопытные детали и передать сие сакральное знание массам, пока оно ещё не устарело. Сразу оговорюсь, что статья ориентирована в большей степени на IIS 7.x, иногда будут ответвления про 6-ку. С 8-й версией в работе не сталкивался, поэтому решил обойти её в этой статье стороной. Но, уверен, читатель без труда разберётся с восьмёркой, освоив изложенный ниже материал.

1. Общий план
2. Крупный план
2.1. HTTP.SYS
2.2. World Wide Web Publishing Service (W3SVC)
2.3. Windows Process Activation Service (WAS)
2.4. Пул приложений
2.5. Домен приложения, приложение
3. Что дальше?
Источники

1. Общий план

Итак, начнём с конца, а потом рассмотрим отдельные аспекты чуть более пристально.
В англоязычной литературе процесс обработки запроса в IIS называется «request processing pipeline» — что-то вроде «конвейера обработки запроса». В общих чертах он представлен на рисунке ниже для http-запроса.

Рис. 1. HTTP request processing pipeline (IIS 7.x).

Таким образом, http-запрос проходит по «сборочной ленте конвейера» через следующее:

1. Браузер обращается к веб-серверу по определённому URL, на стороне сервера запрос перехватывает драйвер HTTP.SYS.
2. HTTP.SYS стучится к WAS для получения информации из хранилища конфигурации.
3. Служба WAS запрашивает конфигурацию из хранилища — из файла в папке IIS (applicationHost.config).
4. Поскольку данный запрос получен по протоколу HTTP конфигурационную информацию получает служба W3SVC (она же WWW Service на картинке), эта информация содержит в себе данные о пуле приложений (application pool) и прочих параметрах сайта.
5. Служба W3SVC использует эту информацию для кофигурации HTTP.SYS.
6. Служба WAS запускает процесс W3WP.exe для пула приложений, если он ещё не был запущен.
7. В процессе W3WP.exe работает приложение веб-сайта, которое, собственно, формирует и возвращает ответ драйверу HTTP.SYS.
8. HTTP.SYS отправляет ответ браузеру.

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

2. Крупный план

2.1. HTTP.SYS

На транспортном уровне IIS использует прослушивателей протоколов (protocol listeners), которые располагаются поверх стека TCP/IP. Наиболее интересный нам такой компонент – это системный драйвер HTTP.sys, который встроен в ядро ОС и работает с протоколами HTTP и HTTPS, регистрирующийся самостоятельно на прослушку всех портов, на которые будут приходить запросы к сайтам в IIS.

Встроенный в ядро HTTP.sys стал нововведением в IIS 6, заместив собой Windows Socket API – компонент перехвата HTTP- и HTTPS-запросов на пользовательском уровне в IIS более ранних версий. Вероятно, интеграция драйвера в ядро является той самой причиной, по которой версия IIS жёстко привязана к версии Windows.

Драйвер принимает все входящие запросы и перенаправляет их в нужный пул приложений. Если по какой-то причине рабочий процесс, в коем хостится требуемый пул, остановлен (сбой, таймаут простоя, смена конфигурации и т.п.) или ещё запускается, то HTTP.sys сохраняет входящие запросы в специально отведённой для каждого пула очереди. Таким образом, запросы пользователей никуда не пропадают, и они вообще не замечают каких-то перебоев в работе сайтов под управлением IIS.

Ещё HTTP.sys умеет кешировать ответы (более подробно — Instances in which HTTP.sys does not cache content), поэтому некоторые запросы обрабатываются без передачи на уровень приложения, а также проводит первичный разбор URI запроса и его валидацию в соответствии с RFC 2396 (кое-что можно почерпнуть отсюда — Use of special characters like ‘%’ ‘.’ and ‘:’ in an IIS URL) и журналирование запросов/ответов.

Некоторые настройки HTTP.sys вынесены в системный реестр Windows (более подробно — Http.sys registry settings for Windows). Кстати, там же – в реестре – можно подсмотреть обычное место прописки нашего гражданина: %SystemRoot%\system32\drivers\http.sys.


Признаться, в процессе написания данной статьи я сам открыл для себя некоторые детали. Например, кэширование ответов на уровне драйвера HTTP.sys. Это помогло мне объяснить один случай странного, как мне тогда казалось, феномена в поведении IIS. Маркетологи выложили на сайт swf-открытку перед очередным праздником, но потом им что-то не понравилось в названии файла и они его переименовали. Однако сайт продолжал выдавать открытку по старому URL и даже очистка браузерного кэша не помогала. Тут уже подключился я, но ни перезапуск веб-сайта и всего пула приложений, ни обращение к сайту в обход корпоративного прокси-сервера не дали ожидаемого результата. Но теперь-то мы знаем, кто виноват.

2.2. World Wide Web Publishing Service (W3SVC)

Данная служба (сокращённо именуемя в спецификациях WWW service) была представлена в IIS 6 в качестве отдельного компонента для работы с протоколами HTTP/HTTPS и управления рабочими процессами приложений и выполняла следующие функции:

  • Администрирование драйвера HTTP.sys.
  • Управление рабочими процессами.
  • Мониторинг показателей производительности веб-сайтов.

Эта служба функционирует в Windows Server 2003 в контексте процесса Svchost.exe (настройки можно посмотреть в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3Svc) в отличие от всех остальных служб IIS, которые исполняются в контексте процесса Inetinfo.exe, и реализована в Iisw3adm.dll.

В IIS 7.x функция управления процессами была вынесена в отдельную службу – WAS (см. п.2.3) в целях универсализации архитектуры. Теперь WWW-служба стала по своей сути одним из адаптеров, специализируясь на протоколах HTTP/HTTPS – работа поверх драйвера HTTP.sys. Однако WWW-служба остаётся краеугольным компонентом IIS, поэтому её настройка отличается от настройки адаптеров к другим протоколам (чуть подобнее здесь); она функционирует в том же рабочем процессе, что и WAS, и реализована в той же самой библиотеке (рис. 2).

Рис.2. Рабочий процесс со службами W3SVC и WAS.

Раз уж зашла речь об адаптерах к прослушивателям протоколов (protocol listener adpater), то давайте чуть задержимся и посмотрим, какие они бывают. В принципе IIS 7.x можно настроить для обработки запросов по любым протоколам помимо типовых HTTP и FTP, например, POP3, SMTP, Gopher. Вы даже вольны придумать свой протокол для своей веб- или WCF-службы и реализовать для него все нужные компоненты, если не жалко своего времени. Скорее всего, адаптеры и прослушиватели для наиболее распространённых протоколов доступны для свободного и коммерческого скачивания – этого я не проверял. Но прежде всего стоить обратить внимание на стандартные службы (рис. 3), поставляемые с .NET Framework и интегрированные с IIS:

  • NetTcpActivator для протокола TCP;
  • NetPipeActivator для Named Pipes;
  • NetMsmqActivator для Message Queuing (ака MSMQ).

Рис. 3. Перечень стандартных не-HTTP-адаптеров в оснастке Служб Windows.

Но всё-таки наиболее важным для нас адаптером является именно WWW-служба, т.ч. остановимся чуть подробнее на двух оставшихся от IIS 6 функциях.

Администрирование и конфигурирование HTTP(S). В момент обновления конфигурации веб-сайтов, служба WAS передаёт эту информацию WWW-службе, а та уже, в свою очередь, настраивает HTTP.sys на прослушку конкретных портов, разбор IP и заголовка запрашиваемого сайта и, возможно, других параметров драйвера. В обратную сторону W3SVC обращается к WAS, когда в очередь запросов в HTTP.sys поступает новый, – для получения рабочего процесса-обработчика данного запроса.

Отслеживание показателей производительности. WWW-служба ведёт счётчики производительности, используя для этого драйвер HTTP.sys, и предоставляет их показатели веб-сайтами и кэшу IIS. Более подробной информации по этому вопросу мне найти не удалось.

2.3. Windows Process Activation Service (WAS)

Итак, WWW-служба в IIS 7.x, как и в IIS 6, продолжает выполнять задачи по администрированию HTTP.sys и управлению показателями производительности веб-сайтов. А вот задача управления рабочими процессами вынесена в отдельную службу – WAS. Она запускается системой в единственном экземпляре, считывает конфигурацию из файла %SystemRoot%\System32\inetsrv\Config\ApplicationHost.config и настраивает через соответствующие адаптеры прослушивателей протоколов в соответствии с указанной в нём информации. Напомним, что для протоколов HTTP/HTTPS адаптером является служба W3SVC, а прослушивателем – драйвер HTTP.sys. При перехвате прослушивателем запроса он через свой адаптер обращается к службе WAS для получения рабочего процесса приложения, которому будет передан запрос для обработки и формирования ответа клиенту.

При активации нужного для обработки пользовательского запроса приложения задействуются следующие компоненты:

  • Адаптеры прослушивателей (Listener adapters) – специальные службы Windows, работающие с конкретным протоколом и взаимодействующие с WAS для направления запросов к правильному рабочему процессу.
  • Собственно WAS. Она ответственна за создание рабочих процессов и управление их временем жизни.
  • Исполняемый файл w3wp.exe – шаблон рабочего процесса.
  • Менеджер приложений управляет созданием и утилизацией доменов приложений (application domains), которые хостятся внутри рабочего процесса.
  • Обработчики протоколов – протоколозависимые компоненты внутри рабочего процесса, ответственные за обмен данными между конкретным адаптером и рабочим процессом. Есть 2 типа обработчиков протоколов: у процесса (process protocol handler — PPH) и у домена приложения (AppDomain protocol handlers — ADPH).

Ниже на рисунке представлен пример схемы компонентов внутри некоего экземпляра рабочего процесса приложения. Когда служба WAS запускает рабочий процесс, она загружает в него согласно конфигурации приложения требуемые обработчики протоколов процессов (PPH) и посредством менеджера приложений создаёт внутри рабочего процесса домен приложения, в котором будет хоститься приложение. Менеджер приложений загружает код приложения в домен приложения и требуемые обработчики протоколов уровня приложения (ADPH) для обработки сообщений по соответствующим сетевым протоколам.

Рис. 4. Компоненты w3wp.exe для взаимодействия с внешними компонентами.

Как отмечалось выше, .NET Framework несёт в себе реализацию компонент для протоколов HTTP/HTTPS (наш любимый ASP.NET), net.tcp, net.pipe и MSMQ. Стеки протоколов HTTP/HTTPS и FTP всё-таки более тесно интегрированы в IIS и ОС, поэтому настройку для нового протокола лучше продемонстрировать на примере менее популярных дотнетовских протоколов. Итак, после установки фреймворка в файле конфигурации IIS ApplicationHost.config появляется записи:

А соответствующие компоненты PPH и ADPH настраиваются в дотнетовском machine.config:

В конфигурационном файле веб-сервера ApplicationHost.config вместе с настройками приложений хранятся связки (bindings), определяющие параметры входящих запросов, которые будут направляться данному приложению. Такими параметрами являются название сетевого протокола, IP-адрес сервера, доменное имя и порт сайта. Эти параметры должны быть уникальными среди работающих приложений для однозначной идентификации целевого приложения. Служба WAS отслеживает это ограничение и не даст вам запустить сайт, у которого это условие не соблюдено, либо предложит остановить сайт с такой же связкой.

Обратите внимание, что в стандартном режиме эксплуатации IIS служба WAS, служба-адаптер для каждого прослушивателя протокола (в т.ч. W3SVC) и сами драйверы/прослушиватели каждого из протоколов (в т.ч. HTTP.sys) запущены в ОС в единственном экземпляре. Но отдельные запросы могут направляться разным приложениям в разных рабочих процессах. С другой стороны, отдельно взятому приложению могут направляться запросы по разным протоколам через соответствующие адаптеры. Видимо, для корректной реализации такого поведения и была придумана архитектурная связка драйвер протокола – адаптер драйвера протокола – служба активации (своеобразный регулировщик, точнее — маршрутизатор) – рабочий процесс.

2.4. Пул приложений

При конфигурации веб-приложения помимо привязок (binding) к параметрам запросов и прочих настроек указывается принадлежность к пулу приложений. Пул приложений стал нововведением в IIS 6 и был призван обеспечить изоляцию веб-приложений друг от друго и тем самым повысить стабильность работы веб-сервера в целом. Суть заключается в том, что код приложения выполняется внутри специального процесса Windows – w3wp.exe. Поэтому исключение внутри веб-приложения приведёт к краху только этого процесса и никак не повлияет на доступность веб-приложений в других пулах и работу служб IIS. Более того, служба WAS попытается заново запустить упавший сайт, и внешние клиенты могут даже не заметить проблем в работе сервера.

Для управления некоторыми параметрами отдельно взятого рабочего процесса w3wp.exe в IIS используется пул приложений. Наиболее часто используемыми из них являются учётная запись, под которой будет запущен процесс, ограничения для очереди запросов, различные таймеры и счетчики для автоматического перезапуска процесса, архитектура x86/x64 (в IIS 7.x) и некоторые другие (рис. 5), о чём любопытный читатель может с лёгкостью прочесть в MSDN и любимом поисковике. Т.о. можно говорить (с определёнными оговорками, см. тж. последний абзац в 2.5) о тождественности процесса w3wp.exe и пула приложений.

Рис. 5 Дополнительные настройки пула приложений

Ключевым нововведением в концепции пулов приложений в IIS 7.x стал новый параметр – модель управления контейнером, который может принимать 2 значения: классическая (Classic mode) и встраиваемая модель (Integrated mode).
Чтобы объяснить разницу между этими режимами работы, потребуется знакомство с понятием «модуль» (Module) в IIS 6/7.x и событийной моделью обработки запросов в связке IIS + ASP.NET. Тема эта достойна отдельной статьи, но меня на неё уже, увы, не хватит, судя по всему. Здесь же представлю вашему вниманию лишь общие, ключевые моменты.

Итак, IIS при обработке запроса пропускает его внутри рабочего процесса через последовательность специальных компонент – модулей. Например фильтрация, перенаправление, кэширование, аутентификация, авторизация. Каждый такой модуль ассоциируется с определённым событием, а их последовательность составляют событийную модель обработки запросов. Модули делятся на нативные (Native) и управляемые (Managed). Нативные модули поставляются вместе с IIS, а управляемые – в составе .NET Framework (ASP.NET). В общем-то, вы можете управлять ими в определённой степени на уровне конфигурации веб-приложения, но взаимодействовать из кода своего ASP.NET-сайта вы можете только с управляемыми модулями.

Рис. 6. Идеология модулей в IIS.

Классическая модель управления контейнером обеспечивает обратную совместимость с режимом изоляции рабочих процессов в IIS 6 – запросы к ASP.NET-сайту сначала проходят через нативные модули, а затем передаются в Aspnet_isapi.dll для обработки модулями в управляемой среде. Такое разделение между IIS и ASP.NET приводит к дублированию некоторых функций, например, аутентификации и авторизации. И вы не имеете возможности управлять программно поведением нативных модулей (пример хоть и не самый животрепещущий, но всё же – раздел «Убираем заголовок Server» в этой статье).

Встраиваемая модель предполагает более тесное взаимодействие между IIS и ASP.NET. Запрос в такой архитектуре обработки пропускается через установленную последовательность событий, в каждом из которых запрос пропускается через нативный и управляемые модули. В таком режиме модели обработки запросов IIS и ASP.NET объединены в единую модель, что позволяет избежать дублирования функций и получить больший контроль над обработкой запроса.

На практике самое важное, что необходимо учитывать при разработке и развёртывании веб-приложений, – это частичная несовместимость этих двух режимов. Т.е. при переводе сайта (точнее пула приложений, в котором работает сайт) из классической модели во встраиваемую практически всегда потребуется корректировка кода (хоть, возможно, и не значительная), а также тщательное тестирование.

2.5. Домен приложения, приложение

Непосредственными контейнерами веб-приложения являются приложение и домен приложения (Application Domain, AppDomain). Зачастую эти два понятия отождествляются, но всё-таки это немного разные вещи. Приложение – это понятие IIS, а домен приложения – из ASP.NET. Причём в общем случае в приложении может быть несколько доменов. Приложением вы можете управлять из консоли IIS, а доменом приложения – в основном программно. Так, например, перезапускается приложение из консоли. А когда мы пересохраняем web.config, то перезагружается именно домен приложения, не трогая IIS-приложение.

Более важным с практической точки зрения является то, что приложение/домен приложения является sandbox-ом для кода вашего ASP.NET-сайта (не с такой надёжной изоляцией, как в случае с пулом, но всё же). Приведу один из моих любимых вопросов, которые я задавал соискателям на собеседованиях. Пусть имеются веб-сайт-1 и веб-сайт-2, а также некая библиотека MyLib.dll, в которой определён класс My >
Рис. 7. Рисунок для задачки.

Ещё один важный момент, который хотелось бы здесь отметить. По умолчанию каждый отдельный рабочий процесс может использовать все имеющиеся на сервере процессоры/ядра, а пул приложений работает на одном рабочем процессе и, следовательно, веб-приложение работает внутри одного IIS-приложения. Тем не менее, вы можете настроить web garden, увеличив кол-во рабочих процессов на пул и, следовательно, число IIS-приложений на одно веб-приложение. Вы без труда сможете найти на просторах интернета информацию о web garden, поэтому опускаю здесь подробности. Единственное, хотелось бы предупредить, что данное средство не является инструментом увеличения производительности, т.к. по умолчанию и так используются все вычислительные мощности сервера. Наоборот, на синхронизацию работы 2+ рабочих процессов уходил «лишнее» время CPU. Делается это в основном для увеличения доступности веб-приложения. Нельзя здесь также не упомянуть о веб-ферме (web farm), как о простейшем средстве балансировки нагрузки в IIS – об этом тоже достаточно статей в Сети. Это другой пример распределённого веб-приложения. Впрочем, с тем же nginx встроенная балансировка нагрузки в IIS конкуренции не выдерживает, и в реальных высоконагрузочных системах вам придётся изобретать свой велосипед или задействовать продукты сторонних производителей.

3. Что дальше?

Дальше нужно разбираться в работе модулей (в терминах IIS) и событийной модели, в которых уже происходит собственно обработка запроса, о чем упоминалось в разделе 2.4. Вообще говоря, эта тема заслуживает отдельной статьи, на которую, боюсь, меня уже не хватит. Но без этого нельзя сказать, что мы рассмотрели весь конвейер обработки запросов. Поэтому кратко пройдёмся здесь по основным моментам, которые любопытствующий читатель может проработать самостоятельно.

Как отмечалось выше в разделе 2.4 модули IIS содержатся внутри рабочего процесса. Через них последовательно пропускается запрос (в отличие от HttpHandler-ов). Их набор и порядок определяется конфигурацией сервера и/или конкретного веб-приложения. Модули предназначены для отдельных, узконаправленных задач, таких как авторизация, кэширование, кастомное логгирование, сжатие, возврат статического контента и, конечно же, формирование HTML-страниц по заданному URL.

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

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

Если я переместил контент из:
mysite.org.uk/stuff
в
stuff.mysite.org.uk/

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

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

4 ответа

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

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

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

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

процедуры

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

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

Нажмите Домашний каталог, Виртуальный каталог или вкладку Каталог.

В разделе «Содержимое этого источника» выберите «Перенаправление на URL-адрес».

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

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

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

Нажмите Домашний каталог, Виртуальный каталог или вкладку Каталог.

В разделе «Содержимое этого источника» выберите «Перенаправление на URL-адрес».

В поле Redirect to введите URL целевого файла.

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

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

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

Перенаправить запросы в программу

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

Нажмите Домашний каталог, Виртуальный каталог или вкладку Каталог.

В разделе «Содержимое этого источника» выберите «Перенаправление на URL-адрес».

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

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

Илон Маск рекомендует:  Тег hgroup
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL
Имя элемента Описание