Uso del modulo di riscrittura URL 2.0

di Ruslan Yakushev

Introduzione

Questa sezione della documentazione si applica all'URL Riscrivere 2.0 per IIS 7.

URL Riscrivere 2.0 per IIS 7 e versioni successive è una versione incrementale che include tutte le funzionalità della versione 1.1 e aggiunge il supporto per l'estendibilità .NET e per la riscrittura della risposta in uscita. In particolare, può essere usato per:

  • Implementare la logica di riscrittura complessa usando i provider di riscrittura scritti in .NET
  • Sostituire gli URL generati da un'applicazione Web nel codice HTML di risposta con un motore di ricerca più descrittivo e descrittivo equivalente al motore di ricerca
  • Modificare i collegamenti nel markup HTML generato da un'applicazione Web dietro un proxy inverso.
  • Correzione del contenuto di qualsiasi risposta HTTP usando la corrispondenza del modello di espressione regolare.
  • Modificare le intestazioni di richiesta e risposta HTTP e le variabili del server IIS.

Funzionalità

URL Riscrivere 2.0 include le funzionalità principali seguenti:

  • Provider di riscrittura personalizzati (nuovo in RTW). I provider di riscrittura possono essere usati quando non è possibile esprimere una logica di riscrittura URL in termini di modelli di espressione regolari o quando è necessario prendere decisioni di riscrittura in base ai dati archiviati al di fuori del file web.config , ad esempio il database SQL o i file di testo. I provider di riscrittura dei clienti possono essere implementati in qualsiasi linguaggio .NET.
  • Motore di riscrittura della risposta basato su regole. Le regole in uscita vengono usate per esprimere la logica di cosa confrontare le parti della risposta con e cosa fare se il confronto ha avuto esito positivo. Gli amministratori del server Web e del sito possono usare regole in uscita per definire la logica di riscrittura della risposta complessa.
  • Riscrittura all'interno del contenuto di tag HTML specifici. Anziché analizzare l'intera risposta per una determinata corrispondenza, la regola può essere configurata per l'aspetto solo all'interno di determinati tag HTML, ad esempio <un>, <img> e così via. In questo modo il modello è notevolmente semplificato e il processo di applicazione della regola al contenuto è molto più veloce rispetto all'applicazione del modello all'intera risposta.
  • Pre-condizioni per le regole in uscita. L'applicazione delle regole di riscrittura su ogni risposta è un'operazione costosa e non è necessaria nella maggior parte dei casi. Le pre-condizioni vengono usate per controllare i metadati della risposta per determinare se è necessario applicare la valutazione delle regole in uscita.
  • Riscrittura delle variabili del server e delle intestazioni di richiesta HTTP. È possibile impostare varie variabili del server IIS e intestazioni di richiesta HTTP usando le regole di riscrittura.
  • Riscrittura delle intestazioni di risposta HTTP. Le regole di riscrittura in uscita possono essere usate per modificare le intestazioni di risposta HTTP esistenti o per impostare nuove.
  • Consenti elenco per le variabili del server. Per impedire alle regole di riscrittura distribuite di modificare accidentalmente o intenzionalmente le variabili del server IIS che possono influire sul comportamento di sicurezza o runtime di un'applicazione Web, è ora necessario aggiungere in modo esplicito le variabili del server modificabili all'elenco consenti.
  • Funzione HtmlEncode. La riscrittura in uscita può spesso usare dati non attendibili (ad esempio stringhe di query o intestazioni HTTP) per compilare una stringa di sostituzione per inserire nella risposta HTTP. In questi casi la funzione HtmlEncode deve essere usata per impedire l'inserimento di script lato client nella risposta, che potrebbero causare vulnerabilità di script tra siti.
  • Rilevamento dei gruppi di acquisizione tra le condizioni delle regole. La logica di back-referencing delle condizioni nell'URL Riscrive 1.1 funziona solo rispetto alle ultime condizioni corrispondenti. In v2 è possibile configurare la logica di back-referencing per funzionare su tutte le condizioni corrispondenti.
  • Modelli di regola per Ottimizzazione motore di ricerca (nuovo in RTW). Tre nuovi modelli di regole semplificano la creazione di regole di reindirizzamento che applicano l'utilizzo degli URL canonici per le pagine Web nel sito.
  • Modello di regola proxy inverso (nuovo in RTW). Questo modello può essere usato per generare rapidamente regole di riscrittura in ingresso e in uscita che implementano la configurazione del proxy inverso.
  • Registrazione degli URL riscritti. Le regole di riscrittura possono essere configurate per registrare l'URL riscritto nei log W3C iis anziché registrare un URL richiesto originariamente.
  • Interfaccia utente aggiornata in Gestione IIS. L'interfaccia utente è stata notevolmente migliorata per rappresentare meglio la configurazione del modulo e per semplificare le attività comuni come la configurazione delle regole di riscrittura e la riscrittura delle condizioni.

Installazione del modulo

Scaricare l'URL Riscrivere 2.0 usando i collegamenti nella home page del modulo in https://www.iis.net/extensions/urlrewrite

Nota

  • Se una versione precedente di riscrivere URL, ad esempio v1.0 e v1.1, è già installata, verrà aggiornata alla versione 2.0
  • Se è già installata una versione RC dell'URL Rewrite 2.0, verrà aggiornata alla versione RTW.

Problemi noti

  1. La riscrittura della risposta non funziona con la compressione statica. È necessario disabilitare la compressione statica IIS per usare la riscrittura della risposta.
  2. Le regole in uscita non vengono applicate alle risposte codificate con trasferimento in blocchi se è abilitata la riscritturaBeforeCache . Impostare rewriteBeforeCache su false se è necessario riscrivere le risposte codificate in blocchi.

Installazione degli esempi di estendibilità

Gli esempi di estendibilità url rewrite includono gli assembly .NET e il codice sorgente che implementa questi provider:

  • DbProvider: questo provider può essere usato per recuperare i mapping di riscrittura da una tabella di database SQL Server eseguendo una stored procedure;
  • FileMapProvider : questo provider può essere usato per recuperare i mapping di riscrittura archiviati in un file di testo;
  • FileContainsProvider : questo provider può essere usato per verificare se una stringa in un file di testo è una sottostringa della stringa di input del provider.

Scaricare gli esempi di estendibilità dell'URL da MSDN Code Gallery.

Uso del modulo

Questi articoli illustrano le funzionalità dell'URL Riscrivere v2.0 e spiegare come usarlo per eseguire scenari di riscrittura comuni.

Procedure dettagliate

Informazioni di riferimento sulle funzionalità