Standarddokument <defaultDocument>
Übersicht
Mithilfe des <defaultDocument>
-Elements können Sie das Standarddokumentverhalten für Ihre Website oder Anwendung aktivieren oder deaktivieren. Dieses Element enthält ein untergeordnetes <files>
-Element, das eine Sammlung von <add>
-Elementen enthält. Jedes <add>
-Element definiert die Standarddokumente, die die Site oder Anwendung an einen Clientbrowser zurückgibt, wenn die Site eine Anforderung für das Stammverzeichnis empfängt.
Das <defaultDocument>
-Element kann außerdem mindestens ein <remove>
-Element enthalten. Jedes <remove>
-Element entfernt eine bestimmte Standarddokumentdatei, die von einer Konfigurationsdatei auf höherer Ebene auf dem IIS 7-Server (Internet Information Services, Internetinformationsdienste) geerbt wurde. Sie können auch das <clear>
-Element verwenden, um alle Standarddokumenteinstellungen zu entfernen, die höher in der Konfigurationshierarchie definiert sind.
Standarddokumente sind standardmäßig aktiviert, und IIS 7 definiert die folgenden Standarddokumentdateien in der Datei „ApplicationHost.config“ als serverweite Standardwerte:
- Default.htm
- Default.asp
- Index.htm
- Index.html
- Iisstart.htm
(Bei der Installation von ASP.NET auf Ihrem Webserver wird dieser Liste auch noch die Datei „Default.aspx“ hinzugefügt.)
Wenn eine Anforderung für das Stammverzeichnis Ihrer Site oder Anwendung eingeht, sendet IIS 7 standardmäßig eine Antwort an den Browser – basierend auf den Dateinamen, die Sie im <defaultDocument>
-Element definiert haben. IIS versucht, die korrekten Dateien in der Reihenfolge zurückzugeben, in der sie im <defaultDocument>
-Element angezeigt werden. Wenn die Datei „Default.htm“ vorhanden ist, sendet IIS sie an den Clientbrowser. Andernfalls versucht IIS, die Datei „Default.asp“ an den Browser zu senden, und wenn die Datei „Default.asp“ nicht vorhanden ist, versucht IIS, die Datei „Index.htm“ an den Browser zu senden. IIS fährt auf diese Weise fort, bis versucht wird, jede Standarddokumentdatei an den Clientbrowser zu senden.
Hinweis
Durch korrekte Sortierung dieser Liste der Standarddokumente können Sie die Leistung von IIS verbessern. Wenn Sie z. B. „Index.php“ für die Startseite in allen Ordnern Ihrer Website verwenden möchten und „Index.php“ am Ende der Liste der Standarddokumente hinzufügen, muss IIS zuerst die einzelnen Standarddokumente in der Liste durchgehen, bevor versucht wird, „Index.php“ an den Clientbrowser zurückzugeben. Abhängig von der Anzahl von Ordnern Ihrer Website sowie von der Anzahl von Clientbrowseranforderungen kann dies die Leistung beeinträchtigen.
Wenn Sie Standarddokumente deaktivieren, aber die Verzeichnissuche aktiviert haben, gibt IIS eine Verzeichnisauflistung zurück, wenn von einem Browser eine Anforderung für das Stammverzeichnis eingeht. Wenn Sie sowohl Standarddokumente als auch die Verzeichnissuche deaktivieren, sendet IIS einen Fehler vom Typ „HTTP 404: Datei nicht vorhanden“ an den Browser.
Kompatibilität
Version | Hinweise |
---|---|
IIS 10.0 | Das <defaultDocument> -Element wurde in IIS 10.0 nicht geändert. |
IIS 8.5 | Das <defaultDocument> -Element wurde in IIS 8.5 nicht geändert. |
IIS 8.0 | Das <defaultDocument> -Element wurde in IIS 8.0 nicht geändert. |
IIS 7.5 | Das <defaultDocument> -Element wurde in IIS 7.5 nicht geändert. |
IIS 7.0 | Das <defaultDocument> -Element wurde in IIS 7.0 eingeführt. |
IIS 6.0 | Das <defaultDocument> -Element ersetzt die IIS 6.0-Eigenschaft DefaultDoc und den Wert EnableDefaultDoc der Eigenschaft DirBrowseFlags für das IIsWebService-Metabasisobjekt. |
Setup
Das <defaultDocument>
-Element ist in der Standardinstallation von IIS 7 enthalten.
Gewusst wie
Hinzufügen eines Standarddokuments für eine Anwendung oder Site
Öffnen Sie Internetinformationsdienste-Manager (IIS-Manager):
Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:
- Klicken Sie auf der Taskleiste auf Server-Manager > Tools > Internetinformationsdienste-Manager (IIS-Manager).
Vorgehensweise unter Windows 8 oder Windows 8.1:
- Halten Sie die WINDOWS-TASTE gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
- Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:
- Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
Vorgehensweise unter Windows Vista oder Windows 7:
- Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
- Doppelklicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
Erweitern Sie im Bereich Verbindungen den Servernamen, erweitern Sie Sites, und navigieren Sie dann zu der Website oder Anwendung, für die Sie Standarddokumente konfigurieren möchten.
Doppelklicken Sie im Bereich Start auf Standarddokument.
Klicken Sie im Bereich Aktionen auf Hinzufügen....
Geben Sie im Dialogfeld Standarddokument hinzufügen im Feld Name den Namen des Standarddokuments ein, das Sie hinzufügen möchten, und klicken Sie anschließend auf OK.
Wählen Sie bei Bedarf im Bereich Aktionen ein Standarddokument aus der Liste aus, und klicken Sie anschließend auf Nach oben oder Nach unten, um die Reihenfolge zu definieren, in der IIS die Standarddokumentliste durchsuchen soll.
Klicken Sie im Benachrichtigungsfeld Standarddokument auf Ja, um die Konfigurationsvererbung von einer übergeordneten Konfigurationsebene abzulehnen, oder klicken Sie auf Nein oder Abbrechen, um die Änderung der Standarddokumentreihenfolge abzubrechen.
Klicken Sie bei Bedarf im Bereich Aktionen auf Entfernen, um Dateinamen zu entfernen, die nicht als Standarddokumente verwendet werden sollen.
Konfiguration
Sie können die Reihenfolge ändern, in der IIS Standarddokumente verarbeitet, indem Sie die Reihenfolge der <add>
-Elemente im <defaultDocument>
-Element ändern.
Das <defaultDocument>
-Element kann auf der Serverebene in der Datei „ApplicationHost.config“ und auf der Site-, Anwendungs- oder URL-Ebene in der entsprechenden Datei vom Typ „Web.config“ konfiguriert werden.
Attribute
Attribut | Beschreibung |
---|---|
enabled |
Optionales boolesches Attribut. Gibt an, dass Standarddokumente aktiviert sind. Der Standardwert ist true . |
Untergeordnete Elemente
Element | Beschreibung |
---|---|
files |
Optionales Element. Gibt eine Liste von Dateinamen an, die als Standarddokumente zurückgegeben werden können. |
Konfigurationsbeispiel
Wenn das folgende Konfigurationsbeispiel in die Datei „Web.config“ für eine Site oder Anwendung eingeschlossen wird, werden Standarddokumente für die Site oder Anwendung aktiviert. Anschließend wird der Dateiname „Home.html“ zur Liste der Standarddokumente der Site oder Anwendung hinzugefügt.
<configuration>
<system.webServer>
<defaultDocument enabled="true">
<files>
<add value="home.html" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
Beispielcode
In den folgenden Beispielen werden Standarddokumente für eine Website namens „Contoso“ aktiviert. Anschließend wird eine Datei mit dem Namen „Home.html“ zur Liste der Standarddokumente für die Site hinzugefügt.
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