Поделиться через


DefaultDocument для документа <по умолчанию>

Общие сведения

Элемент <defaultDocument> позволяет включать или отключать поведение документов по умолчанию для веб-сайта или приложения. Этот элемент содержит дочерний <files> элемент, который содержит коллекцию <add> элементов. Каждый <add> элемент определяет документы по умолчанию, которые сайт или приложение будут возвращать в клиентский браузер, когда сайт получает запрос к корневому каталогу.

Элемент <defaultDocument> также может содержать один или несколько <remove> элементов. Каждый <remove> элемент удаляет определенный файл документа по умолчанию, унаследованный от файла конфигурации более высокого уровня на сервере IIS 7. Элемент также можно использовать для <clear> удаления всех параметров документа по умолчанию, определенных выше в иерархии конфигурации.

Документы по умолчанию включены, и iis 7 определяет следующие файлы документов по умолчанию в файле ApplicationHost.config как серверные значения по умолчанию:

  • Default.htm
  • Default.asp
  • Index.htm
  • Index.html
  • Iisstart.htm

(При установке ASP.NET на веб-сервере в этот список будет добавлен файл Default.aspx.)

По умолчанию, когда поступает запрос для корневого каталога сайта или приложения, IIS 7 отправляет в браузер ответ на основе имен файлов, определенных в элементе <defaultDocument> . IIS пытается вернуть правильные файлы в том порядке, в который они отображаются в элементе <defaultDocument> . Если файл Default.htm существует, iis отправляет его в клиентский браузер. Если файл Default.htm не существует, iis пытается отправить файл Default.asp в браузер, а если файл Default.asp не существует, iis пытается отправить файл Index.htm в браузер. Служба IIS продолжает работать таким образом, пока не попытается отправить каждый файл документа по умолчанию в клиентский браузер.

Примечание

Если правильно упорядочить этот список документов по умолчанию, можно повысить производительность СЛУЖБ IIS. Например, если вы планируете использовать Index.php для домашней страницы во всех папках веб-сайта и добавляете Index.php в конец списка документов по умолчанию, службам IIS придется проверка для каждого из документов по умолчанию в списке, прежде чем пытаться вернуть Index.php в клиентский браузер. В зависимости от количества папок на веб-сайте и количества запросов клиентского браузера это может повлиять на производительность.

Если вы отключите документы по умолчанию, но включили просмотр каталогов, службы IIS возвращают список каталогов при поступлении запроса на корневой каталог из браузера. Если отключить как документы по умолчанию, так и просмотр каталогов, iis отправляет в браузер ошибку "Файл HTTP 404 не существует".

Совместимость

Версия Примечания
IIS 10.0 Элемент <defaultDocument> не был изменен в IIS 10.0.
IIS 8,5 Элемент <defaultDocument> не был изменен в IIS 8.5.
IIS 8,0 Элемент <defaultDocument> не был изменен в IIS 8.0.
IIS 7,5 Элемент <defaultDocument> не был изменен в IIS 7.5.
IIS 7.0 Элемент <defaultDocument> появился в IIS 7.0.
IIS 6,0 Элемент <defaultDocument> заменяет свойство IIS 6.0 DefaultDoc и значение EnableDefaultDoc свойства DirBrowseFlags в объекте метабазы IIsWebService .

Настройка

Элемент <defaultDocument> включен в установку iis 7 по умолчанию.

Инструкции

Добавление документа по умолчанию для приложения или сайта

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения разверните имя сервера, узел Сайты, а затем перейдите к веб-сайту или приложению, где требуется настроить документы по умолчанию.

  3. На панели Главная дважды щелкните документ по умолчанию.
    Снимок экрана: панель

  4. В области Действия нажмите кнопку Добавить...

  5. В диалоговом окне Добавление документа по умолчанию введите имя документа по умолчанию, который требуется добавить, в поле Имя , а затем нажмите кнопку ОК.
    Снимок экрана: диалоговое окно

  6. При необходимости в области Действия выберите документ по умолчанию в списке, а затем нажмите кнопку Переместить вверх или Вниз , чтобы определить порядок, в котором IIS должны выполнять поиск по списку документов по умолчанию.

  7. В поле Оповещение о документе по умолчанию нажмите кнопку Да , чтобы отклонить наследование конфигурации от родительского уровня конфигурации, или нажмите кнопку Нет или Отмена , чтобы отменить изменение порядка документов по умолчанию.
    Снимок экрана: поле оповещения

  8. При необходимости нажмите кнопку Удалить в области Действия , чтобы удалить все имена файлов, которые не нужно использовать в качестве документов по умолчанию.

Конфигурация

Вы можете изменить порядок, в котором IIS обрабатывает документы по умолчанию, изменив <add> порядок элементов в элементе <defaultDocument> .

Элемент можно настроить <defaultDocument> на уровне сервера в файле ApplicationHost.config и на уровне сайта, приложения или URL-адреса в соответствующем Web.config файле.

Атрибуты

Атрибут Описание
enabled Дополнительный логический атрибут.

Указывает, что включены документы по умолчанию.

Значение по умолчанию — true.

Дочерние элементы

Элемент Описание
files Необязательный элемент.

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

Образец конфигурации

Следующий пример конфигурации, включенный в файл Web.config для сайта или приложения, включает документы по умолчанию для сайта или приложения. Затем он добавляет имя файла "Home.html" в список документов сайта или приложения по умолчанию.

<configuration>
   <system.webServer>
      <defaultDocument enabled="true">
         <files>
            <add value="home.html" />
         </files>
      </defaultDocument>
   </system.webServer>
</configuration>

Пример кода

В следующих примерах можно включить документы по умолчанию на веб-сайте Contoso, а затем добавить файл с именем Home.html в список документов по умолчанию для сайта.

AppCmd.exe

appcmd.exe set config "Contoso" /section:defaultDocument /enabled:true /+files.[value='home.html']

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {

    private static void Main() {
        
        using(ServerManager serverManager = new ServerManager()) { 
            Configuration config = serverManager.GetWebConfiguration("Contoso");
            
            ConfigurationSection defaultDocumentSection = config.GetSection("system.webServer/defaultDocument");
            
            defaultDocumentSection["enabled"] = true;
            
            ConfigurationElementCollection filesCollection = defaultDocumentSection.GetCollection("files");
            ConfigurationElement addElement = filesCollection.CreateElement("add");
            addElement["value"] = @"home.html";
            filesCollection.AddAt(0, addElement);
            
            serverManager.CommitChanges();
        }
    }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Class Sample
   Shared Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Contoso")
      Dim defaultDocumentSection As ConfigurationSection = config.GetSection("system.webServer/defaultDocument")

      defaultDocumentSection("enabled") = True

      Dim filesCollection As ConfigurationElementCollection = defaultDocumentSection.GetCollection("files")
      Dim addElement As ConfigurationElement = filesCollection.CreateElement("add")
      addElement("value") = "home.html"
      filesCollection.AddAt(0, addElement)

      serverManager.CommitChanges()
   End Sub
End Class

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";

var defaultDocumentSection = adminManager.GetAdminSection("system.webServer/defaultDocument",
   "MACHINE/WEBROOT/APPHOST/Contoso");

defaultDocumentSection.Properties.Item("enabled").Value = true;

var filesCollection = defaultDocumentSection.ChildElements.Item("files").Collection;

var addElement = filesCollection.CreateNewElement("add");
addElement.Properties.Item("value").Value = "home.html";
filesCollection.AddElement(addElement, 0);

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"

Set defaultDocumentSection = adminManager.GetAdminSection("system.webServer/defaultDocument", _
   "MACHINE/WEBROOT/APPHOST/Contoso")

defaultDocumentSection.Properties.Item("enabled").Value = True  

Set filesCollection = defaultDocumentSection.ChildElements.Item("files").Collection

Set addElement = filesCollection.CreateNewElement("add")
addElement.Properties.Item("value").Value = "home.html"
filesCollection.AddElement addElement, 0

adminManager.CommitChanges