Aggiunta di reindirizzamenti <con caratteri jolly HTTP>

Panoramica

L'elemento <add> dell'elemento <httpRedirect> aggiunge una regola di reindirizzamento con caratteri jolly alla raccolta di regole di reindirizzamento. Le regole con caratteri jolly consentono di aggiungere regole di reindirizzamento per i gruppi di contenuto. Ad esempio, se tutte le pagine *.asp sono state rimosse dopo la migrazione di un'applicazione a pagine .NET che usano estensioni di file *.aspx, è possibile aggiungere una regola di reindirizzamento con caratteri jolly che reindirizza tutte le richieste *.asp per l'applicazione basata su ASP precedente alla home page del sito Web.

Nota

Se si aggiungono regole di reindirizzamento con caratteri jolly, è necessario rimuovere il valore di destinazione predefinito nella <httpRedirect> sezione affinché funzionino le regole con caratteri jolly.

Compatibilità

Versione Note
IIS 10.0 L'elemento <add> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <add> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <add> non è stato modificato in IIS 8.0.
IIS 7,5 L'elemento <add> non è stato modificato in IIS 7.5.
IIS 7.0 L'elemento <add> dell'elemento <httpRedirect> è stato introdotto in IIS 7.0.
IIS 6.0 N/D

Installazione

Reindirizzamento HTTP non è disponibile nell'installazione predefinita di IIS 7 e versioni successive. Per installarlo, seguire questa procedura.

Windows Server 2012 o Windows Server 2012 R2

  1. Sulla barra delle applicazioni fare clic su Server Manager.
  2. In Server Manager fare clic sul menu Gestisci e quindi su Aggiungi ruoli e funzionalità.
  3. Nella procedura guidata Aggiungi ruoli e funzionalità fare clic su Avanti. Selezionare il tipo di installazione e fare clic su Avanti. Selezionare il server di destinazione e fare clic su Avanti.
  4. Nella pagina Ruoli server espandere Server Web (IIS), server Web, espandere Server Web, espandere Funzionalità HTTP comuni e quindi selezionare Reindirizzamento HTTP. Fare clic su Avanti.
    Screenshot di un menu a discesa in I S Manager. Il reindirizzamento T T T P è evidenziato. .
  5. Nella pagina Selezione funzionalità fare clic su Avanti.
  6. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  7. Nella pagina Risultati fare clic su Chiudi.

Windows 8 o Windows 8.1

  1. Nella schermata Start spostare il puntatore fino all'angolo inferiore sinistro, fare clic con il pulsante destro del mouse sul pulsante Start e quindi scegliere Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, servizi Web a livello globale, funzionalità HTTP comuni, quindi selezionare Reindirizzamento HTTP.
    Screenshot della finestra di dialogo Funzionalità di Windows. Il reindirizzamento T T T P è evidenziato nel menu a discesa.
  4. Fare clic su OK.
  5. Fare clic su Close.

Windows Server 2008 o Windows Server 2008 R2

  1. Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Server Manager.
  2. Nel riquadro della gerarchia Server Manager espandere Ruoli, quindi fare clic su Server Web (IIS).
  3. Nel riquadro Server Web (IIS) scorrere fino alla sezione Servizi ruolo e quindi fare clic su Aggiungi servizi ruolo.
  4. Nella pagina Selezione servizi ruolo della Procedura guidata Aggiungi servizi ruolo espandere Funzionalità HTTP comuni, selezionare Reindirizzamento HTTP e quindi fare clic su Avanti.
    Screenshot della procedura guidata Aggiungi Roll Services che mostra la pagina Selezione servizi ruolo. Il reindirizzamento T T T P è evidenziato nel menu a discesa.
  5. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  6. Nella pagina Risultati fare clic su Chiudi.

Windows Vista o Windows 7

  1. Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, quindi Servizi Web a livello mondiale, quindi Funzionalità HTTP comuni.
  4. Selezionare Reindirizzamento HTTP e quindi fare clic su OK.
    Screenshot della finestra di dialogo Funzionalità di Windows. Il reindirizzamento T T T P è evidenziato.

Procedure

Non esiste un'interfaccia utente per l'aggiunta di reindirizzamenti HTTP con caratteri jolly per IIS 7. Per esempi di come aggiungere <add> elementi all'elemento <httpRedirect> a livello di codice, vedere la sezione Esempi di codice di questo documento.

Configurazione

Attributi

Attributo Descrizione
destination Attributo stringa obbligatorio.

Specifica un percorso in cui reindirizzare le richieste che corrispondono al valore jolly correlato.
wildcard Attributo stringa obbligatorio.

Specifica un valore con caratteri jolly univoci a cui vengono confrontate le richieste. Una richiesta viene quindi reindirizzata alla destinazione specificata se la richiesta corrisponde al valore con caratteri jolly.

Elementi figlio

Nessuno.

Esempio di configurazione

Nell'esempio di configurazione seguente viene aggiunta una voce di reindirizzamento con caratteri jolly che reindirizza tutte le richieste di file ASP alla home page del sito Web.

Nota

Questo esempio è utile se tutte le applicazioni basate su ASP sono state rimosse dal sito Web e si desidera che le richieste client per le applicazioni precedenti vengano reindirizzate alla radice del sito Web invece di ricevere una risposta HTTP 404 Non trovato .

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

Codice di esempio

Gli esempi di codice seguenti aggiungono una voce di reindirizzamento con caratteri jolly che reindirizza tutte le richieste per i file ASP alla home page del sito Web.

Nota

Questo esempio è utile se tutte le applicazioni basate su ASP sono state rimosse dal sito Web e si desidera che le richieste client per le applicazioni precedenti vengano reindirizzate alla radice del sito Web invece di ricevere una risposta HTTP 404 Non trovato .

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