Общий перенаправление.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 при создании правила.