it-swarm.com.de

.htaccess leitet meine Seiten nicht von HTTP zu HTTPS um

Es scheint, als würde .htaccess meine Seiten nicht von http zu https umleiten. Meine Domain wird zu https umgeleitet, aber nicht zu meinen Seiten. Kann es sich um eine fehlerhafte Konfiguration von meinem Webhost handeln?

Folgendes habe ich bisher getan:

  • Wählen Sie ein SSL-Zertifikat und installieren Sie es auf meiner Website vom Host.
  • Erzwinge die Übergabe von wp-config von HTTP an HTTP mit: define ('FORCE_SSL_ADMIN', true);
  • Verwandeln Sie alle meine URLs in HTTPs mit "DB ersetzen" und "DB durchsuchen"
  • Diese Domain zur Google Search Console hinzufügen…

Tragen Sie diesen Code in meine .htaccess ein:

<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect to HTTPS 
RewriteCond %{HTTP_Host} ^http://example\.com [NC]
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTPS} =off [OR]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
# Redirect from www HTTPS to HTTPS
RewriteCond %{HTTP_Host} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Ich denke, das ist alles ... Hätten Sie eine Idee, was dieses Problem verursachen kann?

1
Sandra
RewriteCond %{HTTP_Host} ^http://example\.com [NC]

Die HTTP_Host -Variable enthält nur den Hostname, nicht den Schema + Hostname, sodass dieser niemals übereinstimmt. Wenn dies niemals zutrifft, wird http://example.com/... niemals zu HTTPS umgeleitet. (Sie haben dies jedoch korrekt in Ihrem zweiten Regelblock verwendet, der wirdhttp://www.example.com/... zu HTTPS umleitet.)

Ich nehme an, Sie haben nur eine Domain? In diesem Fall sollte diese Richtlinie einfach entfernt (nicht korrigiert) werden.

RewriteCond %{HTTPS} =off [OR]

Sie haben jedoch auch ein falsches OR Flag in der letzten RewriteCond Direktive. Wenn die vorhergehenden Bedingungen übereinstimmen, würde dies zu einer Umleitungsschleife führen, da es sich im Wesentlichen um <condition> OR true handelt, was immer true ist.

Zusammenfassung

# Redirect to HTTPS 
RewriteCond %{HTTP_Host} ^http://example\.com [NC]
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTPS} =off [OR]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

Zusammenfassend sollten Sie also den ersten Regelblock (oben) durch folgenden ersetzen:

# Redirect to HTTPS
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

Es macht keinen Sinn, sowohl SERVER_PORTals auchHTTPS zu überprüfen. Beides sollte ausreichen; nicht beide.

2
MrWhite