2016-07-05 10 views
2

Ich habe das folgende Muster unter Verwendung von Verzeichnisstruktur für meine Haupt-Website einzurichten und Sub-Domains:hinzufügen HTTPS umleiten Regel vorhandene Sub-Domain in einen Ordner neu zu schreiben

A. Jede Seite in einem eigenen Unterordner, einschließlich die Hauptseite, so dass ich etwas wie

haben
\wwwroot 
    \main 
    \subdomain1 

B. Es gibt nur 1 Datei in wwwroot. Eine web.config-Datei mit folgendem

<configuration> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    <rewrite> 
     <rules> 
      <rule name="Rewrite to folder1" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions> 
        <add input="{HTTP_HOST}" pattern="^www.MyMainDomain.com$" /> 
       </conditions> 
       <action type="Rewrite" url="main/{R:1}" /> 
      </rule> 
      <rule name="subdomain1.MyMainDomain.com to sub folder" enabled="true" stopProcessing="true"> 
       <match url="(.*)" ignoreCase="true" /> 
       <conditions logicalGrouping="MatchAll"> 
        <add input="{HTTP_HOST}" pattern="^subdomain1\.MyMainDomain\.com$" ignoreCase="false" /> 
        <add input="{PATH_INFO}" pattern="^/subdomain1($|/)" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="\subdomain1\{R:0}" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

Wie füge ich https umleiten nur die Sub-Domain?

Was ist der beste Weg zu debuggen, was umgeschrieben/umgeleitet wird?

+0

haben Sie dies zur Arbeit bekommen. Ich habe das gleiche Problem und bin mir nicht sicher, wie ich damit umgehen soll. Der einzige Unterschied ist, dass ich kein "main" habe, sondern nur example.com/subdomain1 zu https://subdomain1.example.com/subdomain1 umleiten muss – NoBullMan

Antwort

1

Ich bin mir nicht sicher, was der beste Weg ist, umgeschriebenen/umgeleiteten Datenverkehr zu debuggen.

In Ihrem Zustand Sie wurden Überprüfung sollten, wenn es sich um eine HTTP-Anfrage:

<add input="{HTTP}" negate="true" pattern="^ON$" /> 

oder für den Mangel an https Anfrage Überprüfung:

<add input="{HTTPS}" negate="true" pattern="^OFF$" /> 

Auch versuchen, die Linie mit Typ-Wechsel = "rewrite" von einem Rewrite zu einem permanenten Redirect, so erhält der Browser den richtigen 301 Response Code.

<action type="Redirect" url="https://{HTTP_HOST}/" redirectType="Permanent" />