기본 문서 <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>IIsWebService 메타베이스 개체에서 IIS 6.0 DefaultDoc 속성과 DirBrowseFlags 속성의 EnableDefaultDoc 값을 대체합니다.

설치 프로그램

요소는 <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> 변경할 수 있습니다.

ApplicationHost.config 파일의 서버 수준과 적절한 Web.config 파일의 사이트, 애플리케이션 또는 URL 수준에서 요소를 구성할 <defaultDocument> 수 있습니다.

특성

attribute Description
enabled 선택적 부울 특성입니다.

기본 문서를 사용하도록 지정합니다.

기본값은 true입니다.

자식 요소

요소 Description
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