2017-08-29 2 views
0

Meine Anforderung ist geradlinig. Ich habe Http://abc müssen es Https://abc machen. Ich habe den folgenden Code in web.config hinzugefügt. d. h. neue Regel in IIS hinzugefügt. Ich habe das URL Rewriting-Modul in IIS gefolgt.Http zu Https URL Neuschreiben

<rewrite> 
      <rules> 
       <rule name="http to https" stopProcessing="true"> 
        <match url="(.*)" /> 
        <conditions> 
         <add input="{HTTPS}" pattern="^off$" /> 
        </conditions> 
        <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" /> 
       </rule> 
      </rules> 
     </rewrite> 

Aber es funktioniert immer noch nicht für mich. Helfen Sie mir.

+0

Sie die IIS-Rewrite-Modul installiert? –

+0

Ja. bereits getan, von dort hinzugefügt die neue Regel. Der Code gehört zur neuen Regel selbst. –

Antwort

0

Der Code, den Sie verwenden ist sehr ähnlich zu dem, was ich in der Produktion verwenden, außer dass ich redirectType="Permanent" und ich zufällig einen hart codierten Domain-Namen verwenden, um eine kanonische Domain, um sicherzustellen, und ich verwende {R:1} für den Pfad und Abfrage, aber ich denke, Verwenden Sie {HTTP_HOST}{REQUEST_URI} wie Sie sind, sollten Sie arbeiten, aber Sie benötigen möglicherweise einen Schrägstrich zwischen den beiden.

Geben Sie diesen einen Versuch:

<system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="http to https" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions> 
        <add input="{HTTPS}" pattern="^off$" /> 
       </conditions> 
       <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 
+0

Danke Ron, aber ich habe es auch ausprobiert. Es funktioniert nicht. Ich habe es auf eine andere Art und Weise. Ich habe eine Demo-Website in IIS erstellt. Gab den gleichen DNS-Namen (d. H. Abc aus Http: // abc). dann eine einzelne HTML-Seite hinzugefügt, wo der Code ist mit 'Funktion redirecttoHttps() { var httpsUrl =" https: // abc "; window.location = httpsUrl; } redirecttoHttps(); ' Also wenn Benutzer Http: // abc dann das Skript innerhalb der HTML-Seite wird es zu Https: // abc. Nicht sicher, ob es nicht empfohlen wird. Denn letztendlich findet in Https: // abc site die Benutzervalidierung statt. Nur das, was wir tun, ist Redirect. –

+0

Das ist seltsam, eine weitere Sache, die Sie ausprobieren können, ist die Änderung von 'url = "https: // {HTTP_HOST}/{R: 1}" zu 'url =" https://yourDomainHere.com/{R:1} " 'So ist meine Site tatsächlich konfiguriert. –