2017-07-05 8 views
0

Certaines modifications apportées au site Web ont entraîné la création de listes de redirection comportant plus de 400 URL. Quelle est la meilleure façon de les maintenir? Les ajouter un par un n'est pas une bonne option. En les ajoutant à la configuration Web, le fichier croît au point que le système ne peut plus le lire.Meilleure pratique pour gérer les listes d'URL de redirection avec IIS 8?

Existe-t-il un moyen de gérer un fichier séparé avec des redirections dans IIS 8?

Répondre

1

De mon expérience meilleure façon est d'utiliser des cartes: rewrite

Créer rewriteMaps.config

<rewriteMaps> 
    <rewriteMap name="Redirects"> 
     <add key="/test.aspx" value="/test2.aspx" /> 
     <add key="/aboutus.aspx" value="/about" /> 
    </rewriteMap> 
</rewriteMaps> 

Créer rewriteRules.config

<rules> 
    <rule name="Rule for Redirects"> 
     <match url=".*" /> 
     <conditions> 
     <add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" /> 
     </conditions> 
     <action type="Redirect" url="{C:1}" appendQueryString="false" /> 
    </rule> 
</rules> 

En web.config utilisation configSource attribut

<rewrite> 
    <rewriteMaps configSource="rewriteMaps.config" /> 
    <rules configSource="rewriteRules.config" /> 
</rewrite> 

avantages de cette structure

  • Web.config petites et propres
  • Vous pouvez mettre complexes réoriente/réécritures des conditions dans rewriteRules.config
  • Vous pouvez mettre réoriente simples (redirection pathA à pathB) directement dans rewriteMaps.config en tant que paire valeur-clé
+0

Merci, Victor! Webconfig autorise-t-il plusieurs entrées de réécriture au cas où le fichier rewriteMaps.config deviendrait plus grand que 256kb? De même, l'ordre d'exécution est-il le même que les entrées dans ''? – aaandre

+0

Malheureusement - non. Vous ne pouvez utiliser qu'un seul fichier de carte de réécriture. L'ordre d'exécution devrait être le même –