2017-05-31 9 views
0

Ich versuche, eine Rewrite-Regel in der web.config erstellen, die eine URL wie http://example.org/MySite nehmen und nur zurück zur Stammwebsite wie http://example.org umleiten.web.config Rewrite Regel für Pfade

Es sollte auch bestimmte Ordner wie http://example.org/css oder http://example.org/js ignorieren.

<rewrite> 
    <rules> 
    <rule name="enquiry" stopProcessing="true"> 
     <match url="http://example.org/^$" /> <!-- Wrong !! -> 
     <action type="Rewrite" url="/" /> 
    </rule> 
    </rules> 
</rewrite> 

Antwort

1

Diese zwei Regeln sollten alle Sie brauchen:

<rewrite> 
    <rules> 
     <rule name="root rule" stopProcessing="true"> 
      <match url="^$" /> 
      <action type="None" /> 
     </rule> 
     <rule name="redirect rule" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions logicalGrouping="MatchAll"> 
      <add input="{REQUEST_URI}" pattern="^/css" negate="true" /> 
      <add input="{REQUEST_URI}" pattern="^/js" negate="true" /> 
      </conditions> 
      <action type="Redirect" url="/" /> 
     </rule> 
    </rules> 
</rewrite> 

Die erste stellt sicher, dass die Wurzel nicht in eine Umleitung Schleife umgeleitet wird, und stoppt weitere Regeln verarbeitet werden, die ansonsten gelten, und die Die zweite Option schließt die Ordner aus, die Sie ausschließen möchten. Fügen Sie einfach eine weitere Zeile zu den Bedingungen hinzu, wenn weitere Ordner vorhanden sind, die nicht an den Stamm weitergeleitet werden sollen.