it-swarm.com.de

HTTP-zu-HTTPS-Umleitung für eine bestimmte Domäne über web.config

Ich versuche, eine HTTP-zu-HTTPS-Umleitung auf einer GoDaddy-Webhosting-Plattform durchzuführen. Ich besitze die Windows-Hostingplattform und bearbeite die Datei web.config. Unter diesem Hosting-Konto befinden sich mehrere Domains. Ich versuche, die Umleitung nur für EINE Domain und deren Subdomains durchzuführen..

Beispiel:

  • 5 Domains: domain1.example, domain2.example, etc ... und jede Domain kann Subdomains haben

Gewünschtes Verhalten:

  • *.domain1.example weitergeleitet an https://*.domain1.example (mit oder ohne www)
  • fügen Sie ein Platzhalterzeichen vor der Domäne ein, um alle Unterdomänen zu behandeln

Dies ist, was ich mit begann, die jede Domain von HTTP zu HTTPS umleiten wird, nd es funktioniert richtig:

<rule name="HTTP to HTTPS redirect" stopProcessing="true"> 
    <match url="(.*)" /> 
        <conditions> 
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
        </conditions> 
    <action type="Redirect" redirectType="Permanent" url="https://{HTTP_Host}/{R:1}" />
</rule>  

Jetzt habe ich versucht, es nur für eine bestimmte Domain zu machen, aber ich habe wirklich keine Ahnung, wie ich das selbst schreiben soll. Stattdessen habe ich ein paar Sachen zusammengestellt, die ich online gefunden habe. Ich finde alle +?\ und A-Za ziemlich verwirrend.

        <rule name="HTTP to HTTPS redirect" stopProcessing="true"> 
            <match url="(https?:\/\/(.+?\.)?domain1\.example(\/[A-Za-z0-9\-\._~:\/\?#\[\]@!$&'\(\)\*\+,;\=]*)?)" /> 
                <conditions> 
                    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                </conditions> 
            <action type="Redirect" redirectType="Permanent" url="https://{HTTP_Host}/{R:1}" />
        </rule>   

Dies führt jedoch zu einem 500-Fehler (interner Server).

3
Andrew
<match url="(https?:\/\/(.+?\.)?domain1\.example

Ich glaube, das Attribut url stimmt nur mit URL-Pfaden überein, nicht mit der absoluten URL. Aber wenn es passt, passt es auch zu https, was Sie nicht benötigen.

Fügen Sie einfach ein weiteres Bedingung zu Ihrem ursprünglichen Regel hinzu, das den HTTP_Host für die bestimmte Domain überprüft. Zum Beispiel:

<add input="{HTTP_Host}" pattern="^([a-z]+\.)?domain1\.example$" />
2
DocRoot