Набор редиректов не статичен. Мы будем добавлять и удалять редиректы более десятка раз в день.
Мы используем CMS (DotNetNuke) со встроенной возможностью перенаправления, но различные кеши необходимо перестраивать каждый раз при добавлении или удалении перенаправления, что вызывает некоторые болезненные проблемы с производительностью при добавлении или удалении перенаправлений.
Я посмотрел на перенаправление IIS. Однако эти перенаправления хранятся в файле web.config для сайта. Кажется неправильным изменять web.config до дюжины раз каждый день во время работы сайта с перенаправлениями. Также кажется неправильным иметь так много перенаправлений в одном файле web.config.
Я подозреваю, что может быть альтернативный метод хранения перенаправлений IIS или, возможно, есть другой метод, о котором я не знаю.
Для тех, кто хочет, возможно, убедить меня в том, что нам не нужно так много перенаправлений, я надеюсь, вы правы. Вот некоторые подробности:
У нас есть 30 000 старых страниц продуктов, каждая со своим собственным URL.
У нас есть 30 000 URL-адресов новых продуктов.
У нас есть 1 новая страница продукта с параметром строки запроса. Products.aspx? ProdId = 123456
Процесс перенаправления будет выглядеть примерно так:
OldProductURL1.PHP --301--> Products.aspx?ProdID=1 --200--> NewProductURL1.aspx
или
OldPRoductURL1.PHP --301--> NewProductURL1.aspx
(пока на сервере работает Products.aspx? ProdID = 1 для обслуживания этой страницы)
Есть ли хороший метод для достижения этой цели, который позволит нам добавлять и удалять перенаправления без значительного влияния на производительность живого сайта?
Рассматривали ли вы пользовательский обработчик ошибок 404 в IIS для перевода после того, как страница не найдена? Затем вы можете выполнить поиск в БД или что-то еще, что необходимо для перевода.