Общий перенаправление.NET из папки

У меня есть папка, содержащая несколько файлов ASPX как таковых

folder/file1.aspx
folder/file2.aspx
folder/file3.aspx
etc..

Мне нужно переместить эти файлы в другую папку и изменить их расширение на статические HTML-файлы следующим образом.

folder2/file1.htm
folder2/file2.htm
folder2/file3.htm
etc..

Я пытаюсь изящно перенаправить пользователя, и я не уверен, как продолжить? В.NET возможно ли перехватить запрос на файл aspx и перенаправить на HTML-эквивалент в новом каталоге?

Это также должно быть сделано программно, я не могу оставить все файлы aspx в первой папке с 301 перенаправлениями в page_load. Как я могу получить вызов к папке / any_resource, получить имя ресурса, заменить.aspx для.htm и перенаправить в новый каталог с измененным именем ресурса?

Это вообще возможно?

Я использую.NET Framework версии 4 на IIS 7.

1 ответ

Решение

Ознакомьтесь с функциональностью перезаписи URL. IIS7 поддерживает это. Это можно сделать через файл web.config или использовать графический интерфейс IIS для создания правил.

Практически то, что он делает, если вы попытаетесь получить доступ к папке /page.aspx, сервер автоматически выберет folder2/page.aspx.

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

Что вы хотите сделать, так это перехватить что-нибудь, идущее в папку /.aspx, и заставить сервер вернуть папку 2/.aspx.

Так что ваше регулярное выражение для перехвата запросов к папке //aspx может выглядеть так:

folder/(\w*).aspx

Скобки вокруг \w* сделают его доступным для обратной ссылки ( {R:1})

folder2/{R:1}.htm

Выше ваш URL перенаправления. Он берет имя файла и ищет его.htm версию в папке 2.

Если вы хотите перенаправить все, просто уберите.aspx и.htm. Так:

folder/(\w*)

а также

folder2/{R:1}

Вот краткое руководство, которое покажет вам, где это можно сделать в IIS. Убедитесь, что вы выбрали Redirect вместо Rewrite в поле Action type при создании правила.

URL переписать

Другие вопросы по тегам