Как с помощью IIS6 разместить файлы в подпапке, но при этом они будут работать так, как если бы они находились в корне?

StackOverflow https://stackoverflow.com/questions/45796

  •  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).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top