HTTP-Umleitungen <httpRedirect>

Das <httpRedirect>-Element konfiguriert Einstellungen für Internetinformationsdienste 7 (Internet Information Services, IIS), um Clientanforderungen umzuleiten.

Die Umleitung von Clients an einen neuen Ort kann verschiedene Gründe haben. Wenn Ihr Unternehmen beispielsweise eine Migration zu einer neuen Website durchführt, können Sie alle Anforderungen von der alten Website an die neue Website umleiten. Ähnlich verhält es sich, wenn Sie eine neue Anwendung auf einem Webserver bereitgestellt haben. In diesem Fall können Sie alle Anforderungen für den URL-Namespace der alten Anwendung (z. B. http://www.contoso.com/app_v1.0/) an den neuen Speicherort der Anwendung (z. B. http://www.contoso.com/app_v2.0/) umleiten.

In der einfachsten Konfiguration müssen Sie nur die Attribute enabled und destination des <httpRedirect>-Elements festlegen, um Clients an einen neuen Speicherort umzuleiten. Mithilfe zusätzlicher Elemente wie den Attributen exactDestination und httpResponseStatus können Sie jedoch die Endbenutzererfahrung der Umleitung konfigurieren, indem Sie angeben, ob IIS 7 die Ziel-URL genau wie eingegeben zurückgibt und welcher HTTP-Antwortcode an den Webclient zurückgegeben werden soll.

Kompatibilität

Version Hinweise
IIS 10.0 Dem <httpRedirect>-Element wurde in IIS 10.0 ein zusätzlicher HTTP-Antwortstatus hinzugefügt.
IIS 8.5 Das <httpRedirect>-Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <httpRedirect>-Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <httpRedirect>-Element wurde in IIS 7.5 nicht geändert.
IIS 7.0 Das <httpRedirect>-Element wurde in IIS 7.0 eingeführt.
IIS 6.0 Das <httpRedirect>-Element ersetzt die HttpRedirect-Metabasiseigenschaft von IIS 6.0.

Setup

Die HTTP-Umleitung ist in der Standardinstallation von IIS 7 und höheren Versionen nicht verfügbar. Führen Sie die folgenden Schritte aus, um sie zu installieren:

Windows Server 2012 oder Windows Server 2012 R2

  1. Klicken Sie auf der Taskleiste auf Server-Manager.
  2. Klicken Sie im Server-Manager auf Verwalten und dann auf Rollen und Features hinzufügen.
  3. Klicken Sie im Assistenten zum Hinzufügen von Rollen und Features auf Weiter. Wählen Sie den Installationstyp aus, und klicken Sie auf Weiter. Wählen Sie den Zielserver aus, und klicken Sie auf Weiter.
  4. Erweitern Sie auf der Seite Serverrollen das Element Webserver (IIS). Erweitern Sie anschließend Webserver und Allgemeine HTTP-Features, und wählen Sie dann HTTP-Umleitung aus. Klicken Sie auf Weiter.
    Screenshot of the Server Roles page. H T T P Redirection is selected and highlighted.
  5. Klicken Sie auf der Seite Features auswählen auf Weiter.
  6. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
  7. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows 8 oder Windows 8.1

  1. Bewegen Sie auf dem Startbildschirm den Mauszeiger ganz nach links unten, klicken Sie mit der rechten Maustaste auf die Schaltfläche Start, und klicken Sie dann auf Systemsteuerung.
  2. Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.
  3. Erweitern Sie Internetinformationsdienste > WWW-Dienste > Allgemeine HTTP-Features, und wählen Sie anschließend HTTP-Umleitung aus.
    Screenshot of the Internet Information Services navigation tree. The World Wide Web Services option is expanded. Common H T T P Features is expanded and H T T P Redirection is selected.
  4. Klicken Sie auf OK.
  5. Klicken Sie auf Schließen.

Windows Server 2008 oder Windows Server 2008 R2

  1. Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungstools, und klicken Sie dann auf Server-Manager.
  2. Erweitern Sie im Hierarchiebereich Server-Manager die Option Rollen, und klicken Sie dann auf Webserver (IIS).
  3. Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt Rollendienste, und klicken Sie dann auf Rollendienste hinzufügen.
  4. Erweitern Sie auf der Seite Rollendienste auswählen des Assistenten zum Hinzufügen von Rollendiensten das Element Allgemeine HTTP-Features, wählen Sie HTTP-Umleitung aus, und klicken Sie dann auf Weiter.
    Screenshot of the Role Services section. H T T P Redirection is selected and highlighted.
  5. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
  6. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows Vista oder Windows 7

  1. Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
  2. Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.
  3. Erweitern Sie Internetinformationsdienste > WWW-Dienste > Allgemeine HTTP-Features.
  4. Wählen Sie HTTP-Umleitung aus, und klicken Sie dann auf OK.
    Screenshot of the Programs and Features navigation tree. H T T P Redirection is selected and highlighted.

Gewusst wie

Für IIS 7 steht keine Benutzeroberfläche zum Hinzufügen von HTTP-Umleitungen mit Platzhaltern zur Verfügung. Beispiele zum programmgesteuerten Hinzufügen von <add>-Elementen zum <httpRedirect>-Element finden Sie im Abschnitt Codebeispiele dieses Dokuments.

Hinzufügen einer HTTP-Umleitungsregel zu einer Website oder Anwendung

  1. Ö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).
  2. Erweitern Sie im Bereich Verbindungen den Servernamen, erweitern Sie Sites, und navigieren Sie dann zu der Website oder Anwendung, für die Sie benutzerdefinierte Fehlerseiten konfigurieren möchten.

  3. Doppelklicken Sie im Bereich Start auf HTTP-Umleitung.
    Screenshot of the Home pane. The H T T P Redirect icon is highlighted and selected.

  4. Aktivieren Sie im Bereich HTTP-Umleitung das Kontrollkästchen zum Umleiten von Anforderungen, und geben Sie die Ziel-URL ein.
    Screenshot of the H T T P Redirect pane. The box next to Redirect requests to this destination is checked.

  5. Optional können folgende Optionen angegeben werden:

    • Konfigurieren Sie das Umleitungsziel so, dass exakt das eingegebene Ziel verwendet wird.

    • Konfigurieren Sie das Umleitungsziel so, dass es auf den Stammordner der Ziel-URL und nicht auf Unterordner beschränkt ist.

    • Konfigurieren Sie für den HTTP-Statuscode eine der folgenden möglichen Optionen:

      • 301 – Permanent
      • 302 – Gefunden
      • 307 – Temporär
      • 308 (Permanente Umleitung)

      Hinweis

      IIS 7 gibt für die oben angegebenen Optionen jeweils den folgenden tatsächlichen HTTP-Antwortstatus zurück:

      • HTTP/1.1 301 – Permanent verschoben
      • HTTP/1.1 302 – Umleitung
      • HTTP/1.1 307 – Umleitung
      • HTTP/1.1 308 – Permanent
  6. Klicken Sie nach Abschluss aller oben angegebenen Änderungen im Bereich Aufgaben auf Anwenden.

Konfiguration

Attribute

Attribut Beschreibung
childOnly Optionales boolesches Attribut.

Gibt an, ob der Zielwert dem Dateinamen vorangestellt werden soll, der die umzuleitende Anforderung enthält. Wenn beispielsweise childOnly auf „true“ und der Zielwert auf http://marketing.contoso.com/ festgelegt wurde, wird eine Anforderung für http://contoso.com/default.htm an http://marketing.contoso.com/default.htm umgeleitet.

Der Standardwert ist false.
destination Optionales Zeichenfolgeattribut.

Gibt eine URL oder einen virtuellen Pfad an, an die bzw. zu dem der Client umgeleitet werden soll.
enabled Optionales boolesches Attribut.

Gibt an, ob die Umleitung aktiviert (true) oder deaktiviert (false) ist.

Der Standardwert ist false.
exactDestination Optionales boolesches Attribut.

Gibt an, dass der Zielwert nicht als relativer Speicherort, sondern als absoluter Zielspeicherort betrachtet werden soll.

Der Standardwert ist false.
httpResponseStatus Optionales enum-Attribut.

Gibt die Art der Umleitung an.

Das httpResponseStatus-Attribut kann einen der folgenden Werte haben. Der Standardwert ist Found.
Wert Beschreibung
Found Gibt einen 302-Statuscode zurück, um den Client anzuweisen, eine neue Anforderung für den im destination-Attribut angegebenen Speicherort auszugeben.

Der numerische Wert ist 302.
Permanent Gibt einen 301-Statuscode zurück, um den Client darüber zu informieren, dass sich der Speicherort für die angeforderte Ressource dauerhaft geändert hat.

Der numerische Wert ist 301.
Temporary Gibt einen 307-Statuscode zurück, um Datenverluste für den Client zu verhindern, wenn der Browser eine HTTP POST-Anforderung ausgibt.

Der numerische Wert ist 307.
PermRedirect Gibt einen 308-Statuscode zurück, um den Client darüber zu informieren, dass sich der Speicherort für die angeforderte Ressource dauerhaft geändert hat.

Der numerische Wert ist 308.

Untergeordnete Elemente

Element Beschreibung
add Optionales Element.

Fügt der Sammlung von Umleitungsregeln eine Umleitungsregel mit Platzhalter hinzu.
clear Optionales Element.

Entfernt alle Verweise auf Umleitungsregeln mit Platzhalter aus der Sammlung von Umleitungsregeln.
remove Optionales Element.

Entfernt einen Verweis auf eine Umleitungsregel mit Platzhalter aus der Sammlung von Umleitungsregeln.

Konfigurationsbeispiel

Das folgende <httpRedirect>-Standardelement wird in der Stammdatei „ApplicationHost.config“ in IIS 7 konfiguriert, wenn der Rollendienst „HTTP-Umleitung“ installiert wird. Dieser Konfigurationsabschnitt erbt die Standardkonfigurationseinstellungen, es sei denn, Sie verwenden das <clear>-Element.

<system.webServer>
   <httpRedirect enabled="false" />
</system.webServer>

Im folgenden Konfigurationsbeispiel wird die Umleitung aktiviert und die Ziel-URL konfiguriert, an die Clients umgeleitet werden.

<system.webServer>
   <httpRedirect enabled="true" destination="http://www.contoso.com/" />
</system.webServer>

Im folgenden Konfigurationsbeispiel wird ein Umleitungseintrag mit Platzhalter hinzugefügt, der alle Anforderungen für PHP-Dateien an die Startseite Ihrer Website umleitet.

Hinweis

Dieses Beispiel ist hilfreich, wenn Sie alle ASP-basierten Anwendungen von Ihrer Website entfernt haben und möchten, dass Clientanforderungen für die alten Anwendungen an den Stamm Ihrer Website umgeleitet werden, anstatt eine Antwort vom Typ HTTP 404 – Nicht gefunden auszugeben.

<configuration>
   <system.webServer>
      <httpRedirect enabled="true" exactDestination="true" httpResponseStatus="Found">
         <add wildcard="*.php" destination="/default.htm" />
      </httpRedirect>
   </system.webServer>
</configuration>

Beispielcode

In den folgenden Codebeispielen wird die Standardwebsite so konfiguriert, dass alle Anforderungen unter Verwendung eines HTTP 302-Statuscodes an http://www.contoso.com umgeleitet werden.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/httpRedirect /enabled:"True"
appcmd.exe set config "Default Web Site" -section:system.webServer/httpRedirect /destination:"http://www.contoso.com"
appcmd.exe set config "Default Web Site" -section:system.webServer/httpRedirect /exactDestination:"False"
appcmd.exe set config "Default Web Site" -section:system.webServer/httpRedirect /httpResponseStatus:"Found"

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("Default Web Site");

         ConfigurationSection httpRedirectSection = config.GetSection("system.webServer/httpRedirect");
         httpRedirectSection["enabled"] = true;
         httpRedirectSection["destination"] = @"http://www.contoso.com";
         httpRedirectSection["exactDestination"] = false;
         httpRedirectSection["httpResponseStatus"] = @"Found";

         serverManager.CommitChanges();
      }
   }
}

VB.NET

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

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")

      Dim httpRedirectSection As ConfigurationSection = config.GetSection("system.webServer/httpRedirect")
      httpRedirectSection("enabled") = True
      httpRedirectSection("destination") = "http://www.contoso.com"
      httpRedirectSection("exactDestination") = False
      httpRedirectSection("httpResponseStatus") = "Found"

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

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

var httpRedirectSection = adminManager.GetAdminSection("system.webServer/httpRedirect", "MACHINE/WEBROOT/APPHOST/Default Web Site");
httpRedirectSection.Properties.Item("enabled").Value = true;
httpRedirectSection.Properties.Item("destination").Value = "http://www.contoso.com";
httpRedirectSection.Properties.Item("exactDestination").Value = false;
httpRedirectSection.Properties.Item("httpResponseStatus").Value = "Found";

adminManager.CommitChanges();

VBScript

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

Set httpRedirectSection = adminManager.GetAdminSection("system.webServer/httpRedirect", "MACHINE/WEBROOT/APPHOST/Default Web Site")
httpRedirectSection.Properties.Item("enabled").Value = True
httpRedirectSection.Properties.Item("destination").Value = "http://www.contoso.com"
httpRedirectSection.Properties.Item("exactDestination").Value = False
httpRedirectSection.Properties.Item("httpResponseStatus").Value = "Found"

adminManager.CommitChanges()

In den folgenden Codebeispielen wird ein Umleitungseintrag hinzugefügt, der alle Anforderungen für ASP-Dateien an die Startseite Ihrer Website umleitet.

Hinweis

Dieses Beispiel ist hilfreich, wenn Sie alle ASP-basierten Anwendungen von Ihrer Website entfernt haben und möchten, dass Clientanforderungen für die alten Anwendungen an den Stamm Ihrer Website umgeleitet werden, anstatt eine Antwort vom Typ HTTP 404 – Nicht gefunden auszugeben.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/httpRedirect /enabled:"True" /exactDestination:"True" /httpResponseStatus:"Found"

appcmd.exe set config "Default Web Site" -section:system.webServer/httpRedirect /+"[wildcard='*.asp',destination='/default.htm']"

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("Default Web Site");

         ConfigurationSection httpRedirectSection = config.GetSection("system.webServer/httpRedirect");
         httpRedirectSection["enabled"] = true;
         httpRedirectSection["exactDestination"] = true;
         httpRedirectSection["httpResponseStatus"] = @"Found";

         ConfigurationElementCollection httpRedirectCollection = httpRedirectSection.GetCollection();
         ConfigurationElement addElement = httpRedirectCollection.CreateElement("add");
         addElement["wildcard"] = @"*.asp";
         addElement["destination"] = @"/default.htm";
         httpRedirectCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

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

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")

      Dim httpRedirectSection As ConfigurationSection = config.GetSection("system.webServer/httpRedirect")
      httpRedirectSection("enabled") = True
      httpRedirectSection("exactDestination") = True
      httpRedirectSection("httpResponseStatus") = "Found"

      Dim httpRedirectCollection As ConfigurationElementCollection = httpRedirectSection.GetCollection
      Dim addElement As ConfigurationElement = httpRedirectCollection.CreateElement("add")
      addElement("wildcard") = "*.asp"
      addElement("destination") = "/default.htm"
      httpRedirectCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

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

var httpRedirectSection = adminManager.GetAdminSection("system.webServer/httpRedirect", "MACHINE/WEBROOT/APPHOST/Default Web Site");
httpRedirectSection.Properties.Item("enabled").Value = true;
httpRedirectSection.Properties.Item("exactDestination").Value = true;
httpRedirectSection.Properties.Item("httpResponseStatus").Value = "Found";

var httpRedirectCollection = httpRedirectSection.Collection;
var addElement = httpRedirectCollection.CreateNewElement("add");
addElement.Properties.Item("wildcard").Value = "*.asp";
addElement.Properties.Item("destination").Value = "/default.htm";
httpRedirectCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

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

Set httpRedirectSection = adminManager.GetAdminSection("system.webServer/httpRedirect", "MACHINE/WEBROOT/APPHOST/Default Web Site")
httpRedirectSection.Properties.Item("enabled").Value = True
httpRedirectSection.Properties.Item("exactDestination").Value = True
httpRedirectSection.Properties.Item("httpResponseStatus").Value = "Found"

Set httpRedirectCollection = httpRedirectSection.Collection
Set addElement = httpRedirectCollection.CreateNewElement("add")
addElement.Properties.Item("wildcard").Value = "*.asp"
addElement.Properties.Item("destination").Value = "/default.htm"
httpRedirectCollection.AddElement(addElement)

adminManager.CommitChanges()