Перенаправление IIS с определенного устаревшего URL? - PullRequest
2 голосов
/ 28 октября 2010

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

www.department-a.domain.com / folder / Important-page.html

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

Вот где это сложно.В новой системе поддомен www.department-a.domain.com фактически перенаправляется на www.domain.com/index/department-a.aspx

, который является не папкой, а реальной страницей, котораяделает перенаправление хитрым.Это также означает, что я не могу просто воссоздать структуру папок и использовать простое обновление / перенаправление мета-кода HTML.По сути, мой вопрос таков:

Есть ли в IIS возможность сообщить серверу, что когда кто-то пытается просмотреть конкретный и более не существующий URL-адрес "www.department-a.domain.com/folder/important-page.html "перенаправить их в другое место?Я новичок в .net и IIS, поэтому любые отзывы, ссылки или советы приветствуются.

Редактировать - Извините, я использую IIS7, а не IIS6, как я указывал ранее.

Спасибовы!

Ответы [ 3 ]

2 голосов
/ 28 октября 2010

Посмотрите на переписывание URL.

При использовании IIS 7: Здесь

1 голос
/ 28 октября 2010

Я был новичком в .NET в прошлом месяце и нуждался в таком же решении. Каждый рекомендовал плагины для перезаписи URL, такие как bechbd , но я просто хотел переслать один URL. Конечно, был способ? Оказывается, нет - потому что IIS 6 невероятно глуп.

Вместо этого вам нужно будет поместить код внутри реальной страницы (или установить плагины, если вы делаете более пары URL-адресов).

.ASP

<%@ Language=VBScript %>
<%
' Permanent redirection
Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", "http://www.example.com/"
Response.End
%>

.aspx

<script language="VB" runat="server">
  Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    Response.Status = "301 Moved Permanently"
    Response.AppendHeader("Location", "http://www.example.com/")
  End Sub
</script>

Я только что реализовал этот код в прошлом месяце, и все поисковые системы правильно изменили свой индекс, основываясь на 301-м. Я нашел LOT вариантов этого кода в Интернете, но приведенный выше код отлично работал на моем конкретном стандартном IIS 6.

0 голосов
/ 28 октября 2010

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

Чтобы обойти проблему с поддоменами департамента, ключевой вопрос: "что-нибудь будет работать с этими URL-адресами?" Если нет, то просто настройте сайт для перенаправления всего этого.

...