Подтвердить что ты не робот

Как перенаправить 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?

4b9b3361

Ответ 1

Взято из Microsoft Technet.

Перенаправление веб-сайтов в 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 разверните локальный компьютер, щелкните правой кнопкой мыши веб-сайт или каталог, который вы хотите перенаправить, и нажмите "Свойства" .

  • Перейдите на вкладку 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.

Ответ 2

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

stuff.mysite.org.uk$S$Q

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

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

Ответ 3

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

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

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

Ответ 4

Здесь config для ISAPI_Rewrite 3:

RewriteBase/

RewriteCond% {HTTP_HOST} ^ mysite.org.uk $[NC]

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