Как с помощью IIS6 разместить файлы в подпапке, но при этом они будут работать так, как если бы они находились в корне?
-
09-06-2019 - |
Вопрос
На нашем веб-сайте ASP.NET 3.5, работающем на IIS 6, есть две команды, которые добавляют контент:
- Команда разработчиков добавляет код.
- Бизнес-команда добавляет простые веб-страницы.
В целях здравого смысла и организации мы хотели бы, чтобы бизнес-команда добавляла свои веб-страницы в подпапку проекта:
Корень:для страниц команды разработчиков
Содержание:для страниц бизнес-команды
Но
Мы хотели бы, чтобы пользователи могли переходить к содержимому бизнес-группы без необходимости добавлять слово «Содержимое» в свои URL-адреса, как описано ниже:
Корень:По умолчанию.aspx (Доступны на:www.oursite.com/default.aspx)
Содержание:Попкорн.aspx (Доступны на:www.oursite.com/popcorn.aspx)
Есть ли способ сделать запись конфигурации в инструменте перезаписи ISAPI для каждой из этих страниц?
Решение
У меня сейчас нет возможности проверить это, но я думаю, вы можете использовать флаг -f в RewriteCond, чтобы проверить, существует ли файл в любом каталоге.
RewriteCond %{REQUEST_FILENAME} -!f
RewriteCond Content/%{REQUEST_FILENAME} -f
RewriteRule (.*) Content/(.*)
Что-то подобное тоже может сделать то, что вам нужно.
Другие советы
Поскольку расширения будут ASPX, ASP.NET подхватит запрос...вы можете написать HttpModule, который проверяет страницы, выдающие 404, а затем также проверяет подпапку.
Если вы знаете, что все страницы определенного формата будут поступать из этой папки, вы можете просто переписать URL-адрес в ASP.NET (либо в Global.asax, либо в HttpModule).