Compartir a través de


Redireccionamientos HTTP <httpRedirect>

El elemento <httpRedirect> configura los valores de Internet Information Services (IIS) 7 que redirigen las solicitudes de cliente a una nueva ubicación.

Hay varias razones por las que seria conveniente redirigir a los clientes a una nueva ubicación. Por ejemplo, si su empresa está migrando a un nuevo sitio web, podría redirigir todas las solicitudes del sitio web anterior al nuevo sitio web. Del mismo modo, si ha implementado una nueva aplicación en un servidor web, podría redirigir todas las solicitudes del espacio de nombres de dirección URL de la aplicación anterior (por ejemplo, http://www.contoso.com/app_v1.0/) a la nueva ubicación de las aplicaciones (por ejemplo, http://www.contoso.com/app_v2.0/).

En la configuración más sencilla, solo necesita establecer los atributos enabled y destination del elemento <httpRedirect> para redirigir a los clientes a una nueva ubicación. Sin embargo, los elementos adicionales, como los atributos exactDestination y httpResponseStatus, permiten configurar la experiencia del usuario final del redireccionamiento especificando respectivamente si IIS 7 devolverá la dirección URL de destino exactamente como se especificó y qué código de respuesta HTTP devolverá al cliente web.

Compatibilidad

Versión Notas
IIS 10.0 Se agregó un estado de respuesta HTTP adicional al elemento <httpRedirect> en IIS 10.0.
IIS 8.5 El elemento <httpRedirect> no se modificó en IIS 8.5.
IIS 8.0 El elemento <httpRedirect> no se modificó en IIS 8.0.
IIS 7.5 El elemento <httpRedirect> no se modificó en IIS 7.5.
IIS 7.0 El elemento <httpRedirect> se introdujo en IIS 7.0.
IIS 6,0 El elemento <httpRedirect> reemplaza a la propiedad de metabase HttpRedirect de IIS 6.0.

Configuración

El redireccionamiento HTTP no está disponible en la instalación predeterminada de IIS 7 y versiones posteriores. Para instalarlo, siga estos pasos:

Windows Server 2012 o Windows Server 2012 R2

  1. En la barra de tareas, haga clic en Administrador del servidor.
  2. En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.
  3. En el asistente para Agregar roles y características, haga clic en Siguiente. Seleccione el tipo de instalación y haga clic en Siguiente. Seleccione el servidor de destino y haga clic en Siguiente.
  4. En la página Roles de servidor, expanda Servidor web (IIS), expanda Servidor web, expanda Características HTTP comunes y después seleccione Redireccionamiento HTTP. Haga clic en Next.
    Screenshot of the Server Roles page. H T T P Redirection is selected and highlighted..
  5. En la página Seleccionar características, haz clic en Siguiente.
  6. En la página Confirmar selecciones de instalación, haga clic en Instalar.
  7. En la página Resultados , haga clic en Cerrar.

Windows 8 o Windows 8.1

  1. En la pantalla Inicio, mueva el puntero hasta la esquina inferior izquierda, haga clic con el botón derecho en el botón Inicio y, a continuación, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda Internet Information Services, expanda World Wide Web Services, expanda Características HTTP comunes, y después seleccione Redireccionamiento HTTP.
    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. Haga clic en OK.
  5. Haga clic en Cerrar.

Windows Server 2008 o Windows Server 2008 R2

  1. En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.
  2. En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).
  3. En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.
  4. En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, expanda Características HTTP comunes, seleccione Redireccionamiento HTTP y después haga clic en Siguiente.
    Screenshot of the Role Services section. H T T P Redirection is selected and highlighted.
  5. En la página Confirmar selecciones de instalación, haz clic en Instalar.
  6. En la página Resultados , haga clic en Cerrar.

Windows Vista o Windows 7

  1. En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda Internet Information Services, después World Wide Web Services y, a continuación Características HTTP comunes.
  4. Seleccione Redireccionamiento HTTP y, a continuación, haga clic en Aceptar.
    Screenshot of the Programs and Features navigation tree. H T T P Redirection is selected and highlighted.

Procedimientos

No hay ninguna interfaz de usuario para agregar redireccionamientos HTTP con caracteres comodín para IIS 7. Para obtener ejemplos de cómo agregar elementos <add> al elemento <httpRedirect> mediante programación, consulte la sección Ejemplos de código de este documento.

Adición de una regla de redireccionamiento HTTP a un sitio o aplicación web

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, expanda el nombre del servidor, expanda Sitios y, a continuación, vaya al sitio o aplicación web en los que desea configurar páginas de error personalizadas.

  3. En el panel Inicio, haga doble clic en Redireccionamiento HTTP.
    Screenshot of the Home pane. The H T T P Redirect icon is highlighted and selected.

  4. En el panel Redireccionamiento HTTP, active la casilla para redirigir las solicitudes y escriba la dirección URL de destino.
    Screenshot of the H T T P Redirect pane. The box next to Redirect requests to this destination is checked.

  5. También puede especificar cualquiera de las siguientes opciones:

    • Configure el destino de redireccionamiento para que sea el destino exacto especificado.

    • Configure el destino de redireccionamiento para que se limite a la carpeta raíz de la dirección URL de destino, no a las subcarpetas.

    • Configure el código de estado HTTP, que puede ser una de estas opciones:

      • 301 Permanente
      • 302 Encontrado
      • 307 Temporal
      • 308 Redireccionamiento permanente

      Nota:

      IIS 7 devolverá respectivamente los siguientes estados de respuesta HTTP reales para cada una de las opciones anteriores:

      • HTTP/1.1 301- Movido permanentemente
      • HTTP/1.1 302-Redireccionamiento
      • HTTP/1.1 307-Redireccionamiento
      • HTTP 1.1 308- Redirigido permanentemente
  6. Cuando haya terminado todos los cambios anteriores, haga clic en Aplicar en el panel Tareas.

Configuración

Atributos

Atributo Descripción
childOnly Atributo Boolean opcional.

Especifica si el valor de destino se debe agregar al principio del nombre de archivo que contiene la solicitud que se va a redirigir. Por ejemplo, si childOnly se estableció en true y el valor de destino se configuró como http://marketing.contoso.com/, una solicitud de http://contoso.com/default.htm se redirigiría a http://marketing.contoso.com/default.htm.

El valor predeterminado es false.
destination Atributo de cadena opcional.

Especifica una dirección URL o una ruta de acceso virtual a la que redirigir el cliente.
enabled Atributo Boolean opcional.

Especifica si el redireccionamiento está habilitado (true) o deshabilitado (false).

El valor predeterminado es false.
exactDestination Atributo Boolean opcional.

Especifica que el valor de destino debe considerarse una ubicación de destino absoluta, no una ubicación relativa.

El valor predeterminado es false.
httpResponseStatus Atributo enum opcional.

Especifica el tipo de redireccionamiento.

El atributo httpResponseStatus puede tener uno de los siguientes valores posibles. El valor predeterminado es Found.
Valor Descripción
Found Devuelve un código de estado 302, que indica al cliente que emita una nueva solicitud a la ubicación especificada en el atributo de destino.

El valor numérico es 302.
Permanent Devuelve un código de estado 301, que informa al cliente de que la ubicación del recurso solicitado ha cambiado permanentemente.

El valor numérico es 301.
Temporary Devuelve un código de estado 307, que impide que el cliente pierda datos cuando el explorador emite una solicitud HTTP POST.

El valor numérico es 307.
PermRedirect Devuelve un código de estado 308, que informa al cliente de que la ubicación del recurso solicitado ha cambiado permanentemente.

El valor numérico es 308.

Elementos secundarios

Elemento Descripción
add Elemento opcional.

Agrega una regla de redireccionamiento de caracteres comodín a la colección de reglas de redireccionamiento.
clear Elemento opcional.

Quita todas las referencias a las reglas de redireccionamiento de caracteres comodín de la colección de reglas de redireccionamiento.
remove Elemento opcional.

Quita una referencia a una regla de redireccionamiento de caracteres comodín de la colección de reglas de redireccionamiento.

Ejemplo de configuración

El siguiente elemento predeterminado <httpRedirect> se configura en el archivo ApplicationHost.config raíz en IIS 7 cuando se instala el servicio de rol de redireccionamiento HTTP. Esta sección de configuración hereda las opciones de configuración predeterminadas a menos que use el elemento <clear>.

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

En el ejemplo de configuración siguiente se habilita el redireccionamiento y se configura la dirección URL de destino a la que se redirigen los clientes.

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

En el ejemplo de configuración siguiente se agrega una entrada de redireccionamiento de caracteres comodín que redirige todas las solicitudes de archivos PHP a la página principal del sitio web.

Nota:

Este ejemplo es útil si ha quitado todas las aplicaciones basadas en ASP del sitio web y desea que las solicitudes cliente de las aplicaciones antiguas se redirijan a la raíz del sitio web en lugar de recibir una respuesta HTTP 404 No encontrado.

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

Código de ejemplo

En los ejemplos de código siguientes se configura el sitio web predeterminado para redirigir todas las solicitudes a http://www.contoso.com mediante un código de estado HTTP 302.

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()

En los ejemplos de código siguientes se agrega una entrada de redireccionamiento de caracteres comodín que redirige todas las solicitudes de archivos ASP a la página principal del sitio web.

Nota:

Este ejemplo es útil si ha quitado todas las aplicaciones basadas en ASP del sitio web y desea que las solicitudes cliente de las aplicaciones antiguas se redirijan a la raíz del sitio web en lugar de recibir una respuesta HTTP 404 No encontrado.

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()