URL descrittivo - modello di regola
di IIS Team
I modelli di regola vengono usati per fornire un modo semplice per creare una o più regole di riscrittura per un determinato scenario. Il modulo di riscrizione degli URL include diversi modelli di regola per alcuni scenari di utilizzo comuni. Oltre a tale interfaccia utente del modulo di riscrittura URL, viene fornito un framework per il plug-ing nei modelli di regole personalizzati. Questa procedura dettagliata illustra come usare il modello di regola "URL descrittivo" incluso nel modulo di riscrittura DELL'URL.
Prerequisiti
Questa procedura dettagliata richiede i prerequisiti seguenti:
- IIS 7.0 o versione successiva con ASP.NET servizio ruolo abilitato;
- La riscrittura del modulo 2.0 dell'URL è installata.
Configurazione di una pagina Web di test
Verrà usata una semplice pagina di test asp.net per verificare che le regole create dal modello funzionino correttamente. La pagina di test legge semplicemente le variabili del server Web e restituisce i relativi valori nel browser.
Copiare il codice ASP.NET seguente e inserirlo nella %SystemDrive%\inetpub\wwwroot\
cartella in un file denominato article.aspx:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>URL Rewrite Module Test</title>
</head>
<body>
<h1>URL Rewrite Module Test Page</h1>
<table>
<tr>
<th>Server Variable</th>
<th>Value</th>
</tr>
<tr>
<td>Original URL: </td>
<td><%= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td>
</tr>
<tr>
<td>Final URL: </td>
<td><%= Request.ServerVariables["SCRIPT_NAME"] %>?<%= Request.ServerVariables["QUERY_STRING"] %></td>
</tr>
<tr>
<td>Public Link: </td>
<td><a href="<%= Request.ServerVariables["SCRIPT_NAME"] %>?<%= Request.ServerVariables["QUERY_STRING"] %>">Link URL</a></td>
</tr>
</table>
</body>
</html>
Dopo aver copiato questo file, passare a http://localhost/article.aspx
e verificare che la pagina sia stata eseguita correttamente in un browser.
Uso del modello di regola per generare regole di riscrittura
Il modello di regola "URL descrittivo" può essere usato per generare la riscrittura, il reindirizzamento e le regole in uscita che rendono gli URL per l'applicazione Web dinamica più descrittiva dell'utente e del motore di ricerca. In genere, le pagine Web dinamiche tengono conto dei parametri delle stringhe di query durante la generazione di un codice HTML di output. Gli URL con stringhe di query ( ad esempio ) non sono facili da usare e comunicare come URL basati su gerarchie semplici ( ad esempio http://contoso.com/articles.aspx?year=2008&month=11
http://contolso.com/articles/2008/11
). Inoltre, alcuni crawler del motore di ricerca possono ignorare la stringa di query durante l'indicizzazione delle pagine del sito Web. Il modello di regola consente di generare una regola di riscrittura che trasforma gli URL basati sulla gerarchia in URL con stringhe di query. Il templace può anche, facoltativamente, generare una regola di reindirizzamento che può essere usata per reindirizzare gli URL dei client Web con stringhe di query per pulire gli URL. Infine, è possibile creare una regola di riscrittura in uscita che sostituisce tutte le occorrenze degli URL con stringhe di query nella risposta HTML con gli equivalenti URL basati su gerarchia.
Per usare il modello, seguire questa procedura:
- Passare a Gestione IIS
- Selezionare "Sito Web predefinito"
- Nella visualizzazione funzionalità fare clic su "Riscrittura URL"
- Nel riquadro "Azioni" sul lato destro fare clic su "Aggiungi regole..." e quindi selezionare "URL descrittivo" modello:
- Nella finestra di dialogo "Aggiungi regole per abilitare URL descrittivi" immettere un esempio di URL con parametri stringa di query:
http://localhost/article.aspx?id=123&title=some-title
e quindi espandere l'elenco a discesa con opzioni suggerite per come tale URL di esempio può essere trasformato in un URL senza stringa di query.
- Scegliere la seconda opzione:
http://localhost/article/123/some-title
. Si noti che il modello URL e l'URL di sostituzione sono stati aggiornati di conseguenza. Questi verranno usati nella regola di riscrittura che verrà creata dal modello di regola. Controllare la regola di reindirizzamento "Crea regola di reindirizzamento corrispondente" per creare una regola di reindirizzamento che verrà usata quando i client Web utilizzano l'URL interno per richiedere una pagina Web. Questi client verranno reindirizzati a un URL pubblico corrispondente.
Controllare inoltre la regola di riscrittura in uscita corrispondente per creare una regola in uscita che sostituirà tutte le istanze di URL interni nel codice HTML di risposta con gli equivalenti pubblici.
- Fare clic su "OK" in modo che le regole di riscrittura, reindirizzamento e uscita vengano generate:
Test della regola
Per testare le regole generate, aprire un Web browser e richiedere l'URL seguente:
http://localhost/article/234/some-title
Si noterà che la regola di riscrittura nel server Web ha modificato l'URL originale in article.aspx e ha passato "234" e "some-title" come valori per i parametri della stringa di query.
Nel broser Web spostare il mouse sul testo "URL collegamento" (o usare il menu "Pagina" -> "Visualizza origine..."). Si noti che, anche se l'URL per il collegamento era originariamente in un formato che usava parametri stringa di query, è stato sostituito da URL Riscrivere modulo per usare il formato URL basato sulla gerarchia.
Inoltre, se si richiede http://localhost/article.aspx?id=432&title=some-other-title
che il browser venga reindirizzato a http://localhost/article/432/some-other-title
.
Riepilogo
In questa procedura dettagliata si è appreso come generare regole di riscrittura usando il modello di regola "URL descrittivo" incluso nel modulo di riscrittura URL. Questo modello di regola può essere usato come punto di partenza per progettare regole di riscrittura per abilitare URL descrittivi del motore di ricerca e descrittivi per le applicazioni Web esistenti.