2016-09-20 1 views
0

Wir haben einen IIS 8.5-Setup, wo eine einzelne Website ist verpflichtet, domain.com und enthält eine Reihe von IIS-Anwendungen wie domain.com/app1, domain.com/app2 usw. zugegriffen anzuwenden Jede dieser Anwendungen Punkte Wie URL Rewrite-Regeln korrekt für IIS-Anwendungen

auf dem gleichen physischen Pfad, so teilen sie alle

ein web.config.. Dies ist eine spezifische CMS-Konfiguration.

Ich habe die üblichen URL Rewrite Regeln (Umleitung zu HTTPS, erzwingen Kleinbuchstaben, addieren nachgestellten Schrägstrich usw.) auf die Web.config jede Anwendung freigegeben, aber diese Regeln wurden nur auf die URL nach dem Anwendungsnamen angewendet. Die Regeln ich habe, sind nur Standardregeln hinzugefügt, um die URL Rewrite-GUI:

<rewrite> 
    <rules> 
    <rule name="Enforce lowercase" stopProcessing="true"> 
     <match url="[A-Z]" ignoreCase="false" /> 
     <action type="Redirect" url="{ToLower:{URL}}" redirectType="Permanent" /> 
    </rule> 
    <rule name="Add trailing slash" stopProcessing="true"> 
     <match url="(.*[^/])$" /> 
     <conditions> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     </conditions> 
     <action type="Redirect" url="{R:1}/" redirectType="Permanent" /> 
    </rule> 
    <rule name="Redirect to HTTPS" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="^OFF$" /> 
     </conditions> 
     <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" /> 
    </rule> 
    </rules> 
</rewrite> 

So zum Beispiel http://domain.com/APP1/PATH Umleitungen an https://domain.com/APP1/path/. Auch https://domain.com/app1nicht-https://domain.com/app1/ umleiten.

Die HTTPS-Regel ist in Ordnung, aber kann mir jemand sagen, wie ich die anderen 2 Regeln so konfigurieren kann, dass sie mit der gesamten URL arbeiten, bedenkt, dass der spezifische Anwendungsname (app1, app2 usw.) behandelt werden muss generisch.

UPDATE

ich entdeckt habe, dass ich Klein URLs mit einer globalen Regel in IIS (auf Server-Ebene) durchsetzen kann, die für meine Bedürfnisse ausreichend ist. Es scheint jedoch nicht möglich zu sein, die Regel auf Websiteebene für das Hinzufügen/Entfernen von Schrägstrich zu replizieren.

Antwort

0

Sie müssen nur Action-URL ändern.

+0

Entschuldigung, dies hilft nicht beim Hinzufügen eines Schrägstrichs zur Root-URL (z. B. https://domain.com/app1), da die Regel in diesem Fall nicht ausgeführt wird. – getsetcode

+0

Dies ist die Regel, die ich auf meinen Websites verwende, nicht sicher, warum es für mich und nicht für Sie funktionieren würde. Vielleicht stört dich eine andere Regel? – Henry

+0

Ich denke, wenn Sie erneut testen, werden Sie feststellen, dass die Regel nur auf den relativen Pfad funktioniert, so dass domain.com nicht auf domain.com/ (oder in meinem Fall domain.com/app auf domain.com/app) umgeleitet wird/weil App eine IIS-Anwendung ist) – getsetcode

Verwandte Themen