Règle avec le mappage de réécriture : modèle de règle
Auteur : Ruslan Yakushev
Les modèles de règle sont utilisés pour fournir un moyen simple de créer une ou plusieurs règles de réécriture dans un scénario donné. Le module de réécriture d’URL comprend plusieurs modèles de règle pour certains scénarios d’utilisation courants. Par ailleurs, l’interface utilisateur du module de réécriture d’URL fournit un framework permettant de raccorder des modèles de règle personnalisée. Cette procédure pas à pas vous guide tout au long de l’utilisation du modèle « Règle avec carte de réécriture » qui est inclus dans le module de réécriture d’URL.
Prérequis
Cette procédure pas à pas nécessite les prérequis suivants :
- IIS 7.0 ou version ultérieure avec le service de rôle ASP.NET activé ;
- Module de réécriture de l’URL version Go Live installée.
Configuration d’une page internet de test
Nous allons utiliser un test simple asp.net page pour vérifier que la règle créée par le modèle fonctionne correctement. La page de test lit simplement les variables de serveur web et génère leurs valeurs dans le navigateur.
Copiez le code ASP.NET suivant et placez-le dans le dossier %SystemDrive%\inetpub\wwwroot\
dans un fichier appelé 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>
</table>
</body>
</html>
Après avoir copié ce fichier, accédez à http://localhost/article.aspx
et vérifiez que la page s’affiche correctement dans un navigateur.
Utilisation du modèle de règle pour générer une règle de réécriture
Le modèle « règle avec carte de réécriture » peut être utilisé pour générer des règles de réécriture et de redirection qui utilisent des mappages de réécriture pour stocker des mappages statiques entre les URL demandées à l’origine et les URL réécrites ou redirigées. Pour plus d’informations sur l’utilisation des cartes de réécriture, consultez « Informations de configuration du module de réécriture d’URL » et « Utilisation des cartes de réécriture dans le module de réécriture d’URL ».
Pour utiliser ce modèle, procédez comme suit :
Accéder au Gestionnaire IIS
Sélectionnez « Site internet par défaut »
Dans la vue des fonctionnalités, cliquez sur « Réécriture d’URL »
Dans le volet « Actions » à droite, cliquez sur « Ajouter des règles... »
Dans la boîte de dialogue « Ajouter des règles », sélectionnez « Règle avec réécriture de carte », puis cliquez sur « OK » :
Dans la boîte de dialogue « Ajouter une règle avec la carte de réécriture », choisissez « Réécrire » dans la liste déroulante. Dans la zone de liste modifiable « Choisir la carte de réécriture : » spécifiez le nom du nouveau mappage de réécriture en tant que StaticRewrites.
Cliquez sur « OK ». Cela crée une carte de réécriture avec le nom donné et une règle de réécriture portant le nom « Rewrite Rule 1 for StaticRewrites » qui fait référence à la carte de réécriture.
Après avoir cliqué sur « OK », vous êtes redirigé vers la page dans laquelle vous pouvez spécifier les entrées de mappage pour le mappage de réécriture. Cliquez sur « Ajouter une entrée de mappage ... » dans le volet Actions à droite, puis entrez la valeur d’origine et la nouvelle valeur de l’entrée de mappage en tant que « /article1 » et « /article.aspx ?id=1&title=some-title » respectivement.
Répétez l’étape précédente pour ajouter deux entrées de mappage supplémentaires comme suit :
Valeur d’origine : Nouvelle valeur : /some-title /article.aspx?id=1&title=some-title /post/some-title.html /article.aspx?id=1&title=some-title
Une fois ces étapes terminées, vous devez voir la carte de réécriture suivante et la règle de réécriture créée dans le C:\inetpub\wwwroot\web.config
fichier.
<rewrite>
<rewriteMaps>
<rewriteMap name="StaticRewrites">
<add key="/article1" value="/article.aspx?id=1&title=some-title" />
<add key="/some-title" value="/article.aspx?id=1&title=some-title" />
<add key="/post/some-title.html" value="/article.aspx?id=1&title=some-title" />
</rewriteMap>
</rewriteMaps>
<rules>
<rule name="Rewrite Rule 1 for StaticRewrites" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{StaticRewrites:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Rewrite" url="{C:1}" appendQueryString="False"/>
</rule>
</rules>
</rewrite>
Test de la règle
Pour tester la règle de réécriture générée qui utilise la carte « StaticRewrites », ouvrez le navigateur web et demandez l’une des URL suivantes :
http://localhost/article1
http://localhost/some-title
http://localhost/post/some-title.html
L’une des URL ci-dessus doit entraîner la réécriture de l’URL conformément aux mappages définis dans la carte de réécriture. Les résultats doivent ressembler à la page suivante :
Résumé
Dans cette procédure pas à pas, vous avez appris à générer des règles de réécriture avec des cartes de réécriture à l’aide du modèle « Règle avec réécriture de carte » inclus avec le module de réécriture d’URL. Ce modèle de règle peut être utilisé pour créer une règle et un mappage d’espace réservé qui peut contenir un grand nombre de mappages de réécriture et de redirection statiques pour votre application web.