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

JavaScript zum Wechseln zwischen mehreren Bildern

In diesem Artikel wird der spezifische JavaScript...

Beispiel für die Implementierung eines globalen Wasserzeichens in Vue

Inhaltsverzeichnis 1. Erstellen Sie eine Wasserze...

Lösungen für MySQL-Batch-Insert- und eindeutige Indexprobleme

MySQL-Batch-Einfügeproblem Da bei der Entwicklung...

Zusammenfassung der CSS-Schwebeelementanalyse

Float: links/rechts/keine; 1. Gleichstufiges Schw...

Detaillierte Erklärung der Semiotik in Html/CSS

Basierend auf Theorien wie Saussures Sprachphilos...

So verwenden Sie nginx zum Konfigurieren des Zugriffs auf wgcloud

Die Nginx-Konfiguration ist wie folgt: Wie http:/...

Zusammenfassung der verschiedenen Verwendungsmöglichkeiten von JSON.stringify

Vorwort Jeder, der schon einmal JSON verwendet ha...

Beispiel zum Anzeigen und Ändern der MySQL-Transaktionsisolationsebene

Überprüfen Sie die Transaktionsisolationsebene In...

Vue implementiert das gleichzeitige Einstellen mehrerer Countdowns

In diesem Artikelbeispiel wird der spezifische Co...

TypeScript verwendet vscode, um den Codekompilierungsprozess zu überwachen

Installieren Installieren Sie den TS-Befehl globa...