Как настроить IIS 6.0 для использования как страницы содержимого по умолчанию, так и карт приложений с подстановочными знаками - PullRequest
2 голосов
/ 25 октября 2008

В файловой системе у меня есть

    /file.aspx
    /directory/default.aspx

Я хочу настроить IIS так, чтобы он возвращал соответствующий файл (добавьте расширение aspx) или каталог (страница содержимого по умолчанию) следующим образом:

    /file -> /file.aspx
    /directory -> /directory/default.aspx 
    /directory/ -> /directory/default.aspx

Я настроил сопоставление для приложения подстановочного знака C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll. Когда флажок «Проверить, что файл существует» снят, запрос файла работает, но не запрос каталога (возвращает 404). Когда установлен флажок «Убедитесь, что файл существует», запрос каталога работает, но не запрос файла.

Как я могу настроить его так, чтобы запросы файлов и каталогов работали?

Ответы [ 3 ]

1 голос
/ 30 октября 2008

Я рекомендую использовать UrlRewriter:

http://urlrewriter.net/

Это позволяет вам создавать все отображения выше, что вы хотите. Одна вещь, которую вам придется сделать (если вы используете IIS 6 или более раннюю версию), - настроить IIS так, чтобы все расширения обрабатывались asp.net. Документация объясняет, как это сделать. Затем вы создаете набор правил в вашем web.config (или отдельном rewriter.config, как я использую) в форме регулярных выражений для создания ваших отображений.

Кстати, для приведенного выше примера вам, вероятно, не нужно ничего делать для двух последних правил. IIS позаботится об этом автоматически. Для первого правила это будет что-то вроде:

<rewrite url="^/file$" to="/file.aspx" />

Вы могли бы стать умнее и написать обобщенные правила, чтобы вам не приходилось писать одно правило на файл.

0 голосов
/ 28 ноября 2008

Я посмотрел на переписывание URL, но в конечном итоге решил более простое решение. Я просто переместил файл .aspx в каталог и переименовал его в default.aspx.

0 голосов
/ 25 октября 2008

Вам нужно будет добавить глобальный ASP.NET или HttpModule для ASP.NET, который сопоставляет / request с default.aspx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...