IIS und APACHE implementieren die HTTP-Umleitung auf HTTPS

IIS und APACHE implementieren die HTTP-Umleitung auf HTTPS

IIS7

Laden Sie das HTTP Rewrite-Modul von der offiziellen Website von Microsoft herunter. Starten Sie den IIS-Dienst nach Abschluss der Installation neu. Öffnen Sie dann die IIS-Konsole und Sie finden eine zusätzliche Komponente. Doppelklicken Sie auf „URL Rewrite“ und wählen Sie im rechten Fenster „Regel hinzufügen“. Fügen Sie eine leere Regel hinzu und geben Sie der Regel einen benutzerdefinierten Namen (Sie können sie beliebig benennen). Ich nenne sie beispielsweise „Umleitung zu HTTPS“ und das Muster ist (.*). Fügen Sie eine Bedingung hinzu und geben Sie {HTTPS} ein, um dem Muster zu entsprechen. Das Muster ist ^OFF$. Konfigurieren Sie dann den Vorgang. Der Vorgangstyp ist: Umleitung. Die Umleitungs-URL ist: https://{HTTP_HOST}/{R:1}. Der Umleitungstyp ist: permanent 301.

Nach Abschluss der Einstellungen klicken Sie rechts auf „Übernehmen“ und die URL-Umschreibung ist konfiguriert.

Nach der Konfiguration sieht der Inhalt der Datei web.config im Stammverzeichnis wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?>
<Konfiguration>
  <system.webServer>
    <umschreiben>
      <Regeln>
        <Regelname="Umleitung zu HTTPS" aktiviert="true" stopProcessing="true">
          <übereinstimmende URL="(.*)" />
          <Bedingungen>
            <add input="{HTTPS}" pattern="^OFF$" />
          </Bedingungen>
          <action type="Umleitung" url="https://{HTTP_HOST}/{R:1}" />
        </Regel>
      </Regeln>
    </umschreiben>
  </system.webServer>
</Konfiguration>

Apache-HTTP-Konfiguration zum Wechsel zur https-Konfiguration

Ändern Sie die .htaccess-Datei und fügen Sie ihr die folgenden Zeilen hinzu:

RewriteEngine aktiviert
UmschreibenBase /
RewriteCond %{HTTPS} != ein
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Eine andere Schreibweise ist:

RewriteEngine ein
UmschreibenBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]

Nginx-Konfiguration

Nginx-Umschreibmethode

Ideen

Dies sollte für jeden die einfachste Methode sein. Alle HTTP-Anfragen können durch Umschreiben in HTTPS umgeschrieben werden.

Konfiguration

Server { 
  hören Sie 192.168.1.111:80; 
  Servername test.com; 
   
  schreibe ^(.*)$ https://$host$1 permanent um; 
} 

Nachdem Sie diesen virtuellen Host eingerichtet haben, können Sie alle Anfragen von http://test.com auf https://test.com umschreiben.

Nginx 497-Statuscode

Fehlercode 497

497 - normale Anfrage wurde an HTTPS gesendet

Erläuterung: Wenn diese virtuelle Site nur https-Zugriff zulässt, meldet nginx beim Zugriff per http einen Fehlercode 497.

Ideen

Verwenden Sie den Befehl error_page, um den Link mit dem Statuscode 497 auf den Domänennamen https://test.com umzuleiten.

Konfiguration

Server {
hören Sie 192.168.1.11:443; #SSL-Port
listen 192.168.1.11:80; #Benutzer sind es gewohnt, über http zuzugreifen, 80 hinzuzufügen und dann den Statuscode 497 zu verwenden, um automatisch zu Port 443 zu springen
Servername test.com;
# SSL-Unterstützung für einen Server aktivieren {......}
SSL aktiviert;
#Geben Sie die Zertifikatsdatei im PEM-Format an
SSL-Zertifikat /etc/nginx/test.pem;
#Geben Sie die private Schlüsseldatei im PEM-Format an
SSL-Zertifikatsschlüssel /etc/nginx/test.key;

#Leiten Sie HTTP-Anfragen auf HTTPS-Anfragen um
Fehlerseite 497 https://$host$uri?$args;
}

index.html aktualisiert die Webseite

Idee Beide der oben genannten Methoden verbrauchen Serverressourcen. Lassen Sie uns curl verwenden, um baidu.com zu besuchen und zu sehen, wie Baidu den Sprung von baidu.com zu www.baidu.com schafft

Es ist ersichtlich, dass Baidu die Aktualisierungsfunktion von Meta geschickt nutzt, um von baidu.com zu www.baidu.com zu springen. Daher können wir auch eine index.html basierend auf dem virtuellen Hostpfad von http://test.com schreiben, und der Inhalt ist der Sprung von http zu https

Hauptseite

<html>
<meta http-equiv="aktualisieren" content="0;url=https://test.com/">
</html>

Konfiguration des virtuellen Nginx-Hosts

Server {
hören Sie 192.168.1.11:80;
Servername test.com;

Standort / {
#index.html wird im Stammverzeichnis des virtuellen Hostmonitors abgelegt
Stammverzeichnis /srv/www/http.test.com/;
}
#Leiten Sie die 404-Seite auf die https-Startseite um
Fehlerseite 404 https://test.com/;
}

Postscript: Alle drei oben genannten Methoden können verwendet werden, um HTTP-Anfragen zu zwingen, auf Basis von nginx zu HTTPS-Anfragen zu springen. Sie können die Vor- und Nachteile abwägen oder entsprechend den tatsächlichen Anforderungen wählen.

Das könnte Sie auch interessieren:
  • So implementieren Sie die HTTP-Umleitung auf HTTPS in IIS 7
  • IIS7/IIS7.5 URL-Umschreibung HTTP-Umleitung zu HTTPS
  • Legen Sie den HTTP-Zugriff so fest, dass in IIS eine Umleitung zu HTTPS erfolgt

<<:  Detaillierte Erklärung zur Verwendung von Javascript zur Behandlung allgemeiner Ereignisse

>>:  Gemeinsame MySQL-Testpunkte für die Computerprüfung der zweiten Stufe 8 Methoden zur Optimierung des MySQL-Datenbankdesigns

Artikel empfehlen

Wie implementiert MySQL ACID-Transaktionen?

Vorwort Kürzlich wurde ich in einem Interview gef...

Welche Schleife ist in JavaScript die schnellste?

Wenn wir wissen, welche For-Schleife oder welcher...

Super detaillierte grundlegende JavaScript-Syntaxregeln

Inhaltsverzeichnis 01 JavaScript (abgekürzt: js) ...

So fügen Sie schnell 10 Millionen Datensätze in MySQL ein

Ich habe gehört, dass es eine Interviewfrage gibt...

So verwenden Sie Nexus, um JAR-Pakete zu privaten Servern hinzuzufügen

Warum müssen wir einen privaten Nexus-Server erst...

Vue implementiert Beispielcode zur Formulardatenvalidierung

Fügen Sie dem el-form-Formular Regeln hinzu: Defi...

JavaScript-Grundlagenreihe: Funktionen und Methoden

Inhaltsverzeichnis 1. Der Unterschied zwischen Fu...