2017-06-06 4 views
0

Ich habe Probleme mit der dieser Regel URL Rewrite in IIS 7.5:IIS 7.5 Rewrite-Modul Schleife

<rewrite> 
    <rewriteMaps configSource="rewriteMap.Custom.config" /> 
    <rules> 
     <rule name="Redirects" patternSyntax="ECMAScript" stopProcessing="true"> 
      <match url=".*" /> 
      <conditions>       
       <add input="{Custom:{REQUEST_URI}}" pattern="(.*)" /> 
      </conditions> 
      <action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" /> 
     </rule> 
    </rules> 
</rewrite> 
<httpRedirect enabled="true" destination="https://www.newsite.com" exactDestination="true" /> 

rewriteMap.Custom.config:

<rewriteMaps> 
    <rewriteMap name="Custom"> 
     <add key="/home" value="https://www.newsite.com/index" /> 
     <add key="/contact" value="https://www.newsite.com/contactus" /> 
     <add key="/main" value="https://www.newsite.com/mainpage" /> 
    <rewriteMaps> 
<rewriteMap> 

Alle Umleitungen in der Rewrite-Karte arbeiten, zum Beispiel:

www.oldsite.com/home richtig

www.newsite.com/index umleitet

Die einzige Ausnahme ist, wenn ich www.oldsite.com eintippe, es nicht zu www.newsite.com umleitet, stattdessen hält es Schleifen durch Anfragen zu www.oldsite.com und Chrome gibt einen "zu vielen Umleitungen" Fehler.

Ich habe versucht, die Regel zu ändern, aber ich habe es nur auf den Punkt brach es funktioniert überhaupt nicht.

+1

Can Sie fügen bitte zu Ihrer Frage voll '', weil Sie es verwenden –

+0

Fügen Sie einfach alle Ihre rewriteMap.Custom.config in Antwort –

+0

rewriteMap.Custom.config: ist ein Beispiel für eine Rewrite-Map, ich kann hier nicht die echte schreiben, aber es sieht im Grunde so aus wie die benutzerdefinierte, die ich gemacht habe. –

Antwort

0

Sie umschreiben Karten Config so sein sollte:

<rewriteMaps> 
    <rewriteMap name="Custom"> 
     <add key="/" value="https://www.newsite.com/" /> 
     <add key="/home" value="https://www.newsite.com/index" /> 
     <add key="/contact" value="https://www.newsite.com/contactus" /> 
     <add key="/main" value="https://www.newsite.com/mainpage" /> 
    </rewriteMap> 
</rewriteMaps> 

Und Ihre rules Abschnitt in web.config so sein sollte:

<rules> 
    <rule name="Redirects" patternSyntax="ECMAScript" stopProcessing="true"> 
     <match url=".*" /> 
     <conditions>       
      <add input="{Custom:{REQUEST_URI}}" pattern="(.+)" /> 
     </conditions> 
     <action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" /> 
    </rule> 
</rules> 

Problem war in der falschen pattern

+0

Danke, ich habe gerade gemerkt, dass die Wurzel auch hinzugefügt werden muss. Es funktioniert gut. –