Modul 3 · 3.2
Deutsch
www, Weiterleitung und gemischte Inhalte
Modul 3: Adresse, https und Benutzer · Lesezeit: 9 Minuten
Lernziel: Nach dieser Lektion können Sie eine Hauptadresse wählen, alle Varianten mit einer Weiterleitung dorthin leiten sowie gemischte Inhalte aufspüren und beheben.
Kernbegriffe: kanonische Adresse, 301 und 308, Weiterleitungskette, gemischte Inhalte (Mixed Content), Suchen und Ersetzen in der Datenbank, serialisierte Daten
Vier Adressen, eine Website
Ihre Website ist über vier Adressen erreichbar:
http://example.com
http://www.example.com
https://example.com
https://www.example.comFür einen Besucher macht das keinen Unterschied, aber für Suchmaschinen sind es vier verschiedene Adressen mit demselben Inhalt. Auch Cookies (wie Ihr Login-Cookie) gelten pro Name: Wer sich bei www anmeldet, ist bei der Domain ohne www nicht angemeldet. Deshalb wählen Sie eine kanonische Adresse (die Hauptadresse) und leiten die anderen drei dorthin weiter.
Welche Sie wählen, ist Geschmackssache (Lektion 2.1). Wichtig ist, dass die Hauptadresse überall gleich ist: in der DNS, im Zertifikat, in Einstellungen > Allgemein (Lektion 3.1) und in den Weiterleitungen.
Weiterleiten mit einem 301, in einem Schritt
Eine Weiterleitung ist eine Antwort des Servers: "diese Seite liegt woanders". Der Browser geht dann automatisch zur neuen Adresse. Der Code gibt an, um welche Art Weiterleitung es sich handelt:
| Code | Bedeutung | Verwendung |
|---|---|---|
| 301 | Dauerhaft umgezogen | Die Standardwahl für http zu https und für www zur Domain ohne www (oder umgekehrt) |
| 308 | Dauerhaft, und die Methode (zum Beispiel ein Formularversand) bleibt gleich | Kann auch für diesen Zweck verwendet werden; Browser und Suchmaschinen behandeln ihn wie 301 |
| 302 oder 307 | Vorübergehend | Nur für etwas wirklich Vorübergehendes, wie eine Wartungsseite |
Eine dauerhafte Weiterleitung teilt Suchmaschinen mit, dass die neue Adresse die echte ist. Bei einer vorübergehenden behalten sie die alte Adresse im Gedächtnis.
Achten Sie auch auf die Kette. Angenommen, Ihre Hauptadresse ist https://example.com. Dann möchten Sie:
http://www.example.com 301 https://example.com/
http://example.com 301 https://example.com/
https://www.example.com 301 https://example.com/
https://example.com 200Jede Variante gelangt in einem Schritt zur Hauptadresse. Häufig passiert jedoch Folgendes:
http://www.example.com 301 https://www.example.com/
https://www.example.com 301 https://example.com/Das funktioniert zwar, kostet aber einen zusätzlichen Schritt (zusätzliche Wartezeit, vor allem auf dem Smartphone) und einen zusätzlichen TLS-Handshake. Schlimmer ist ein Kreislauf: Der Webserver leitet zu https weiter, WordPress leitet zurück zu http, weil die Adressen in den Einstellungen noch auf http stehen, und der Browser meldet "zu viele Weiterleitungen". Dann steuern zwei Einstellungen gegeneinander. Sorgen Sie dafür, dass nur eine Partei zu https weiterleitet (der Webserver oder das Panel) und dass die Adressen in WordPress bereits auf die Hauptadresse eingestellt sind.
WordPress leitet auch selbst weiter: Fragt jemand https://www.example.com/contact/ an, während die Website-Adresse https://example.com lautet, leitet WordPress zu https://example.com/contact/ weiter. Das funktioniert nur, wenn die Anfrage bei WordPress ankommt, also wenn der Webserver den Namen www ebenfalls auf diese Website leitet.
Gemischte Inhalte
Gemischte Inhalte (Mixed Content) bedeuten, dass eine https-Seite Bestandteile über http:// lädt: ein Bild, ein Stylesheet, ein Skript, eine Schriftart oder ein eingebettetes Video. Der Browser hält das für unsicher, weil diese Bestandteile unterwegs verändert werden könnten.
- Skripte, Stylesheets und iframes über http werden von Browsern blockiert. Ihre Website sieht dann kaputt aus, oder eine Funktion arbeitet nicht.
- Bilder, Audio und Video über http versuchen moderne Browser automatisch über https abzurufen; gelingt das nicht, werden sie blockiert. Das Schloss-Symbol kann dann eine Warnung anzeigen.
Wo es herkommt:
- Alte Links in Ihrem Inhalt: Eine Website, die früher auf http lief, hat in Tausenden Beiträgen
<img src="http://example.com/wp-content/uploads/...">. WordPress speichert diese Links wörtlich in der Datenbank. - Theme- oder Plugin-Einstellungen mit einer vollständigen Adresse, zum Beispiel ein Logo oder ein Hintergrund mit
http://. - Externe Bestandteile einer anderen Website, die nur über http erreichbar sind. Diese müssen Sie ersetzen oder entfernen.
- Adressen in Einstellungen > Allgemein, die noch auf http stehen (Lektion 3.1).
So finden Sie es
Öffnen Sie die Seite, drücken Sie F12 und schauen Sie in den Tab Console. Der Browser meldet jeden gemischten Inhalt mit der Adresse des Bestandteils. Oder durchsuchen Sie den Quelltext der Seite (Strg+U) nach src="http:// und href="http://. Links zu anderen Websites in gewöhnlichem Text (<a href="http://...">) ergeben keine gemischten Inhalte; es geht um Dinge, die die Seite lädt.
Suchen und Ersetzen, aber richtig
Die Lösung für alte Links in Ihrem Inhalt besteht darin, alle http://example.com in der Datenbank durch https://example.com zu ersetzen. Die Versuchung ist ein SQL-Befehl wie:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com');Tun Sie das nicht. Viele Einstellungen von Themes, Plugins und Widgets sind serialisiert gespeichert. Das sieht so aus:
s:27:"http://example.com/logo.png";Das s:27 bedeutet: Hier folgt ein Text mit 27 Zeichen. Nach einem einfachen Ersetzen ist der Text 28 Zeichen lang (ein s kam hinzu), aber es steht immer noch 27 da. PHP kann den Wert dann nicht mehr lesen, und die Einstellung fällt stillschweigend weg: ein leeres Menü, ein verschwundenes Logo, Widgets, die fehlen.
Verwenden Sie ein Hilfsmittel, das diese Längen aktualisiert:
- WP-CLI: zuerst prüfen, dann ausführen.
wp search-replace 'http://example.com' 'https://example.com' --all-tables --dry-run
wp search-replace 'http://example.com' 'https://example.com' --all-tablesMit --dry-run sehen Sie, wie viele Ersetzungen pro Tabelle vorgenommen würden, ohne dass etwas geändert wird.
- Ein Suchen-und-Ersetzen-Plugin, das serialisierte Daten unterstützt (es gibt mehrere im Plugin-Verzeichnis von wordpress.org). Entfernen Sie das Plugin danach wieder.
Erstellen Sie immer zuerst ein Backup (Lektion 8.1). Ersetzen Sie außerdem niemals etwas wie example.com ohne das vorangestellte http://: Sonst erwischen Sie auch E-Mail-Adressen und andere Texte.
In der Praxis: So sieht es in einem Panel aus
Als Beispiel verwenden wir DirectAdmin. Andere Panels verfügen über einen vergleichbaren Schalter für "immer https".
- Aktivieren Sie bei den Domaineinstellungen SSL mit https-Weiterleitung erzwingen (Lektion 3.1).
- Wählen Sie bei der Domain, ob www zur Domain ohne www führen soll oder umgekehrt (bei DirectAdmin in den Domaineinstellungen; sonst mit einer Weiterleitung über Weiterleitungen oder
.htaccess). - Überprüfen Sie die Kette mit dem untenstehenden Befehl oder mit den Entwicklerwerkzeugen Ihres Browsers (Tab Netzwerk, Häkchen "Protokoll beibehalten").
Zusammenfassung
- Wählen Sie eine kanonische Adresse und leiten Sie die anderen drei Varianten mit einem 301 (oder 308) in einem Schritt dorthin.
- Lassen Sie nur eine Partei zu https weiterleiten; sonst entsteht ein Kreislauf.
- Gemischte Inhalte bedeuten, dass eine https-Seite Bestandteile über http lädt; die Browserkonsole zeigt, welche das sind.
- Alte Links in der Datenbank ersetzen Sie mit
wp search-replaceoder einem Plugin, das serialisierte Daten versteht, niemals mit einem einfachen SQL-REPLACE. - Immer zuerst ein Backup und eine Testrunde.
Quiz
Aufgabe
Aufgabe A3.2: Eine Hauptadresse und keine gemischten Inhalte. Geben Sie Ihre Domain ein. Das Programm öffnet die vier Varianten (http und https, mit und ohne www) und folgt den Weiterleitungen. Gut ist: Alle vier münden in dieselbe Adresse mit https, mit höchstens einer Weiterleitung pro Variante und nur mit dauerhaften Codes (301 oder 308). Danach liest das Programm das HTML der Startseite und sucht nach Skripten, Stylesheets, Bildern, iframes und Schriftarten, die über http:// geladen werden.
Weiterführende Informationen
Diese Artikel beschreiben die Schritte in den Panels von WebOké; in anderen Panels funktionieren sie ähnlich.
- DirectAdmin Anleitung 6.4: Besucher immer zu https weiterleiten
- DirectAdmin Anleitung 4.7: Weiterleitungen: ein Domain oder eine Seite weiterleiten
- Besucher zwingend zu https weiterleiten
- Kostenloser DNS-Kurs 3.4: www, Weiterleitung und was DNS nicht kann
- Gemischte Inhalte (MDN, Englisch): https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content
- wp search-replace (developer.wordpress.org, Englisch): https://developer.wordpress.org/cli/commands/search-replace/
