2009-10-17 2 views
0

Мы используем IIS7 и ASP.NET 3.5.Перенаправления IIS7 и 301 - папка в файл

Мы обновили наш сайт новыми страницами. Теперь в Интернете есть много ссылок, указывающих на наш сайт, однако многие из этих ссылок теперь нарушены из-за изменения нашей структуры каталогов для нашего нового веб-сайта.

Мне нужно иметь несколько запросов, 301 перенаправлен на «новую страницу». Многие из старых страниц просто каталог URL, такие как:

/услуги/SoftwareDevelopment

/Продукты/geographicdata

/карта сайта

/компания/termsofuse

Я написал несколько кода в файле Global.asax, чтобы поймать URL-адрес, проанализировать их и перенаправить. Однако, когда ссылка на файл (.aspx) отсутствует, URL-адреса не попадают в мое приложение ASP.NET.

Кажется, что эти перенаправления необходимо создать в IIS7.

Теперь указанные выше URL-адреса находятся на уровне каталога (они напрямую не запрашивают актуальную страницу .aspx) ... Я могу перенаправить запрос «каталога» в другой «каталог» с помощью виртуальных каталогов .... Но я не могу перенаправить запрос каталога на фактический файл .aspx

Вот некоторые из типов редиректов мне нужно сделать:

==========

Старый:/services/softwaredevelopment

перенаправить на:/services/cust ом-программно-development.aspx

============

Старый:/карта сайта

редирект: /sitemap.aspx

==== ========

Старый:/компания/termsofuse

редирект: /company/termsofuse.aspx

=============

Старый:/Компания/карьера

редирект: /company/careers.aspx

========= ====

Старые:/услуги/

переадресацией на: /services/custom-software-development.aspx

=============

Может кто-то пролить свет на то, как это сделать? Пожалуйста, дай мне знать, если возникнут какие-либо вопросы. Большое спасибо за вашу помощь.

Tim

ответ

1

Один быстрый и грязный вариант заключается в создании default.aspx перенаправления страниц в папках, которые вы перечислили. Например, для обработки/услуги/SoftwareDevelopment, создать файл default.aspx в /services/softwaredevelopment/default.aspx со следующим:

<%@ Page Language="C#" Inherits="System.Web.UI.Page" %> 

<% Response.Redirect("/services/custom-software-development.aspx"); %> 

Это решение имеет смысл только, если есть только несколько перенаправлений, как и он загромождает ваш проект с помощью файлов кода, которые очень мало. Лучшим решением для большого количества переадресаций является использование IIS 7 native URL rewriter.

Смежные вопросы