IIS 7.5: виртуальные каталоги с разными документами по умолчанию
У нас есть типичная настройка в IIS для нашего веб-приложения с виртуальными каталогами для различных проектов:
- www.webapp.com (веб-сайт)
- project1 (виртуальный каталог)
- project2 (виртуальный каталог)
- project3 (виртуальный каталог)
В веб-приложении в качестве документа по умолчанию используется login.aspx, как и все виртуальные каталоги. Теперь мне нужен другой документ по умолчанию (index.aspx) только для веб-сайта www.webapp.com. Виртуальные каталоги будут продолжать использовать login.aspx и только это.
РЕДАКТИРОВАТЬ: Все виртуальные каталоги указывают на один и тот же физический каталог. Если я изменю документ по умолчанию для www.webapp.com, он также изменится для всех базовых виртуальных каталогов.
Раньше это было легко в IIS 6, но в IIS 7.5 я не смог реализовать это.
Я думаю, что мне нужно изменить applicationhost.config, добавив теги местоположения, но я понятия не имею, как начать. Может ли кто-нибудь указать мне правильное направление?
Спасибо! Стейн
4 ответа
Для этого вам нужно изменить файл ApplicationHost.config. Местоположение файла в данный момент находится в каталоге%windir%\system32\inetsrv\config.
Раздел Расположение ближе к концу документа необходимо изменить соответствующим образом в зависимости от документов вашего приложения по умолчанию. например, -
<location path="Default Web Site/App">
<system.webServer>
<defaultDocument enabled="true">
<files>
<clear />
<add value="Login.aspx" />
</files>
</defaultDocument>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>
<location path="Default Web Site/App/VApp2">
<system.webServer>
<defaultDocument enabled="true">
<files>
<clear />
<add value="LoginPage2.aspx" />
</files>
</defaultDocument>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>
1) Перейдите -> IIS -> виртуальный каталог (двойной щелчок) -> щелкните Документ по умолчанию -> нажмите кнопку Добавить -> Введите html,aspx и т. Д. Для (например, index.html, k. html)
2) Перейдите в свой физический каталог -> откройте файл web.config с помощью (notepad ++)
3) удалить все строки
4) добавить эти строки
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="XX">
<system.webServer>
<defaultDocument enabled="false">
<files>
<clear />
<add value="XXX.html" />
</files>
</defaultDocument>
</system.webServer>
</location>
</configuration>
5) Редактировать некоторые изменения
<location path="XX">
XX -> имя вашего виртуального каталога
<add value="XXX.html" />
XXX.html -> название вашей страницы с расширением
Может быть, я не понял твою проблему, но она кажется мне тривиальной.
Откройте диспетчер информационных служб Интернета, выберите виртуальный каталог (двойной щелчок). В разделе IIS откройте "Документ по умолчанию" и установите документ по умолчанию (или удалите его).
Повторите процедуру для всех ваших виртуальных каталогов.
ОБНОВИТЬ:
Вопрос: указывают ли (некоторые из) ваши виртуальные каталоги на один и тот же физический каталог? IIS сохраняет информацию в файлах web.config в физическом каталоге. Это может быть вашей проблемой.
Обходной путь: создайте некоторую логику, которая перенаправляет запросы виртуальных каталогов. Или создайте копию своего физического каталога, чтобы файлы web.config могли быть установлены индивидуально.
Да, самый простой (читай: cheat-i-est) способ настроить это так:
Откройте функцию делегирования и отключите делегирование модуля документа по умолчанию (или сделайте его доступным только для чтения) для сайта.
Сделав это, GUI создаст <location>
теги для вас на любом уровне ниже, чем только что настроенный параметр Делегирование.