2010-05-07 7 views
0

Je dois créer des règles pour web.config qui récrire toutes les demandes de fichiers avec l'extension .html à .asp et rediriger toutes les requêtes .asp .htmlurl IIS récrire réécriture tous .asp .html

Exemple :
file_xyz.asp réécrit à file_xyz.html
directory1/file_xyz.asp ré-écrit à directory1/file_xyz.html
et

file_xyz.html redirige vers file_xyz.asp
directory1/file_xyz.html redirige vers directory1 /file_xyz.asp

  1. Quelle est la syntaxe de la règle
  2. Est-ce trop large règle? Si je devais avoir besoin pour quelque raison que ce soit d'avoir un fichier physique tel que file_abc.html, comment l'exclure de la règle de redirection? Je pense que je devrais juste utiliser ISAPI_Rewrite http://www.isapirewrite.com/ il semble y avoir une tonne de ressources pour réécrire avec htaccess et très peu d'aide en ligne pour l'utilisation de la réécriture d'URL IIS 7. Toute pensée et/ou des conseils

Merci à l'avance

Jusqu'à présent, c'est la syntaxe je le web.config

<rule name="RewriteHTMLtoASP" stopProcessing="true"> 
    <match url="^([^/]+)\.html$" /> 
    <conditions logicalGrouping="MatchAll" /> 
    <action type="Rewrite" url="{R:1}.asp" /> 
    </rule> 
<rule name="RedirectASPtoHTML" stopProcessing="true"> 
    <match url="^([^/]+)\.asp$" /> 
    <conditions logicalGrouping="MatchAll"> 
    <add input="{REQUEST_METHOD}" pattern="^GET$" /> 
    </conditions> 
    <action type="Redirect" url="{R:1}.html" appendQueryString="false" /> 
    </rule> 
+0

sons comme une boucle sans fin attente de se produire (asp -> html -> asp ...) – Oded

Répondre

0

Jetez un oeil à cet article: http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

Vous pouvez réécrire vos pages Web via les paramètres web.config. Si vous utilisez un hébergement partagé, je ne recommanderais pas d'utiliser ISAPI. Faites-moi savoir si cela fonctionne pour vous.

Cordialement, Anvar

+0

J'ai mon propre serveur, donc c'est juste une question d'acheter la licence pour ISAPI_Rewrite et de l'installer ou d'aller avec l'URL gratuite Rewrite avec IIS 7. Ils sont tous deux assez compliqués à apprendre. Syntaxe des expressions régulières, etc. – donxythe

3

Essayez ceci, u devrait savoir $ balise est la fin de redirect/réécrire l'état et querystrings ne seront pas acceptées

<rule name="RewriteHTMLtoASP" stopProcessing="true"> 
       <match url="(.*).html(.*)" /> 
       <conditions logicalGrouping="MatchAll" /> 
       <action type="Rewrite" url="{R:1}.asp{R:2}" /> 
      </rule> 
      <rule name="RedirectASPtoHTML" stopProcessing="true"> 
       <match url="(.*).asp(.*)" /> 
       <conditions logicalGrouping="MatchAll"> 
       <add input="{REQUEST_METHOD}" pattern="^GET$" /> 
       </conditions> 
       <action type="Redirect" url="{R:1}.html{R:2}" appendQueryString="true" /> 
      </rule>