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 по умолчанию.
Инструкции
Добавление документа по умолчанию для приложения или сайта
Откройте диспетчер служб 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.
В области Подключения разверните имя сервера, узел Сайты, а затем перейдите к веб-сайту или приложению, где требуется настроить документы по умолчанию.
На панели Главная дважды щелкните документ по умолчанию.
В области Действия нажмите кнопку Добавить...
В диалоговом окне Добавление документа по умолчанию введите имя документа по умолчанию, который требуется добавить, в поле Имя , а затем нажмите кнопку ОК.
При необходимости в области Действия выберите документ по умолчанию в списке, а затем нажмите кнопку Переместить вверх или Вниз , чтобы определить порядок, в котором IIS должны выполнять поиск по списку документов по умолчанию.
В поле Оповещение о документе по умолчанию нажмите кнопку Да , чтобы отклонить наследование конфигурации от родительского уровня конфигурации, или нажмите кнопку Нет или Отмена , чтобы отменить изменение порядка документов по умолчанию.
При необходимости нажмите кнопку Удалить в области Действия , чтобы удалить все имена файлов, которые не нужно использовать в качестве документов по умолчанию.
Конфигурация
Вы можете изменить порядок, в котором 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