Verwenden Sie .htaccess, um HTTP auf HTTPs umzuleiten
Lesezeit: 8 Minuten
Cristiano Maia
Bitte empfehlen Sie mir das nicht langer und sehr ausführlicher Thread mit mehr als 173 Upvotes. Es hat bei mir nicht funktioniert. Ich habe auch viele andere ausprobiert (1, 2, 3, 4). Sie alle geben mir TOO_MANY_REDIRECTS oder Fehler 500. Also, hier ist mein Problem:
Bei meinem aktuellen .htaccess passiert folgendes:
Ich glaube nicht, dass es relevant ist, aber wenn ja, hier ist die Liste der derzeit aktiven Plugins:
Erweiterte benutzerdefinierte Felder
All-in-One-SEO-Paket
Elementtyp des Bop-Suchfelds für Navigationsmenüs
Kontaktformular 7
Kommentare deaktivieren
Google XML-Sitemaps
Jetpack von WordPress.com
Suchen & Filtern
Schieberegler WD
TablePress
UpdraftPlus – Sichern/Wiederherstellen
Wordfence-Sicherheit
WPide
WP Schmus
WP-Super-Cache
Bearbeiten 1 – Durchgeführte Tests:
Prüfung A:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Ergebnis: 302 gefunden. Außerdem wurde beim Versuch, ein ErrorDocument zur Verarbeitung der Anforderung zu verwenden, ein 500 Internal Server Error-Fehler festgestellt.
Vielleicht nur ein Tippfehler, aber du hast dich buchstabiert .htaccess falsch (auf die gleiche Weise) 3 mal? Ihre aktuelle .htaccess-Datei ist nicht vollständig, Ihnen fehlt eine RewriteEngine On Richtlinie. Wenn Sie die kanonische Weiterleitung hinzufügen, fügen Sie diese vermutlich ganz oben in Ihre .htaccess-Datei ein? Das behauptest du https://example.com Weiterleitungen OK, aber das ist in Ihrer Konfigurationsdatei nicht angegeben? Wo/wie passiert das? Es wäre nützlich zu wissen, was Sie tatsächlich versucht haben – das funktioniert nicht.
– Herr weiß
17. August 2015 um 13:26 Uhr
Entschuldigung, die .htaccess war ein Tippfehler, ich habe es jetzt behoben. Ich habe auch den aktuellen .htaccess-Code und alle Tests aktualisiert, die ich mit dem Ergebnis von jedem durchgeführt habe. Ich weiß nicht, wie das https ohne www auf die umleitet www Version aber. Danke
– Cristiano Maia
17. August 2015 um 15:19 Uhr
Normalerweise würden Sie die Servervariable erwarten HTTPS festgelegt werden (Ihre Ergebnisse legen etwas anderes nahe). Stecken Sie hinter einem Proxy? (Test E führt wahrscheinlich zu einer Art „rekursivem“ 404?)
– Herr weiß
17. August 2015 um 16:44 Uhr
Ich habe gerade 123-reg (Hosting-Unternehmen) kontaktiert, um zu überprüfen, ob sie auf ihrer Seite etwas eingerichtet haben, das die Dinge durcheinander bringt. Selbst wenn ich das funktionierende .htaccess habe und das Umleitungstool in ihrem (123reg) Control Panel einrichte, erhalte ich ERR_TOO_MANY_REDIRECTS.
Dieser wird für mich auf Namecheap Shared Hosting bearbeitet.
– Liakat
2. Juli 2016 um 19:24 Uhr
Arbeitete auch auf asmallorange.com
– Leonardo Herrera
17. März 2017 um 18:19 Uhr
Hat bei mir auf einem LAMP-Server mit WordPress 4.7.4 beim Anbieter Time4VPS funktioniert
– John Smith
29. April 2017 um 11:06 Uhr
Achten Sie auf die genaue Reihenfolge der Regeln. Ich hatte die Rewrite-Regel unter die bestehenden WordPress-Regeln gestellt, aber dann nur die Root-Domain umgeleitet und keine HTTP-URI-Anfragen. Diese korrekte Reihenfolge über den bestehenden WordPress-Regeln leitet alle HTTP-Anfragen richtig weiter.
– delrocco
20. Juni 2017 um 21:52 Uhr
Es ist nicht nötig, auf jeden einzelnen Host hinzuweisen, auf dem dies funktioniert! Es ist ein einfaches Stück Code für .htaccess, also sollte es auf den meisten Systemen funktionieren, die .htaccess akzeptieren. Wenn es nicht funktioniert, liegt es an einem seltsamen Szenario.
Diese Änderung führte zu “[www.domain.com] hat Sie zu oft umgeleitet” für eine Domain, die ich auf Dreamhost hoste. Kein Glück. Dies hat jedoch funktioniert: RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
– Jason Schah
7. April 2016 um 11:37 Uhr
Ich musste nur das ändern RewriteCond zum folgenden, um das zu vermeiden too many redirects: RewriteCond %{HTTPS} !=on
– Lucaferrario
23. November 2016 um 13:36 Uhr
Bei mir auf virtualmin verursachte Apache 2.4 verboten. Die Lösung von @jason-shah hat funktioniert.
– Aleksandar Pavić
23. Dezember 2016 um 11:06 Uhr
Funktioniert nicht für mich. Diese Lösung leitet “Sie zu oft” um. Chrom sagt.
– zhekaus
22. März 2017 um 5:23 Uhr
Dies ist die einzige Lösung, die für mich funktioniert hat. (Viel zu viele getestet.) Das “ENV:” war entscheidend. Aus den Antworten und anderen Lösungen geht hervor, dass Sie es auf einigen Hosts auch nicht tun beinhalten müssen es während auf andere Sie muss es weglassen. Übrigens: Für alle, die dies verwenden möchten, sollten Sie die Verwendung von in Betracht ziehen R=301 statt nur R (was 302-Umleitung bedeutet).
In meinem Fall enthielt die htaccess-Datei viele Regeln, die von Plugins wie installiert wurden Verfall in ferner Zukunft und WPSuperCache und auch die Zeilen von WordPress selbst.
Um die Dinge nicht durcheinander zu bringen, musste ich die Lösung an den Anfang von htaccess stellen (das ist wichtig, wenn Sie es an das Ende setzen, führt dies zu einigen falschen Weiterleitungen aufgrund von Konflikten mit dem Cache-Plugin)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Auf diese Weise werden Ihre Zeilen nicht von WordPress durcheinander gebracht, falls sich einige Einstellungen ändern. Auch der <IfModule> Abschnitt kann problemlos wiederholt werden.
Ich muss Jason Shah für die nette htaccess-Regel danken.
Zu Ihrer Information, es hängt wirklich von Ihrem Hosting-Provider ab.
In meinem Fall (Infomaniak), nichts oben funktionierte tatsächlich und ich bekam eine unendliche Umleitungsschleife.
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://your-domain.com/$1 [R=301,L]
Erkundigen Sie sich daher immer bei Ihrem Hosting-Provider. Hoffentlich haben sie einen Artikel, der erklärt, wie das geht. Ansonsten einfach den Support fragen.
Gemeinschaft
Dies ist getestet und sicher in der Anwendung
Warum?: Wenn WordPress Bearbeiten Sie Ihre Re-Write-Regelnstellen Sie also sicher, dass Ihre Die HTTPS-Regel sollte nicht entfernt werden! das ist also kein Konflikt mit nativen WordPress-Regeln.
Notiz: Du musst dich ändern WordPress-Adresse & Website-Adresse URLs zu https:// in Allgemeine Einstellungen Auch (wp-admin/options-general.php)
Steve
Ich habe festgestellt, dass alle in diesen Fragen und Antworten aufgeführten Lösungen bei mir leider nicht funktioniert haben. Was funktioniert hat war:
Beachten Sie, dass die obigen WordPress-Regeln für WordPress im Mehrbenutzer-Netzwerkmodus gelten. Wenn sich Ihr WordPress im Single-Site-Modus befindet, würden Sie Folgendes verwenden:
Vielleicht nur ein Tippfehler, aber du hast dich buchstabiert
.htaccess
falsch (auf die gleiche Weise) 3 mal? Ihre aktuelle .htaccess-Datei ist nicht vollständig, Ihnen fehlt eineRewriteEngine On
Richtlinie. Wenn Sie die kanonische Weiterleitung hinzufügen, fügen Sie diese vermutlich ganz oben in Ihre .htaccess-Datei ein? Das behauptest duhttps://example.com
Weiterleitungen OK, aber das ist in Ihrer Konfigurationsdatei nicht angegeben? Wo/wie passiert das? Es wäre nützlich zu wissen, was Sie tatsächlich versucht haben – das funktioniert nicht.– Herr weiß
17. August 2015 um 13:26 Uhr
Entschuldigung, die .htaccess war ein Tippfehler, ich habe es jetzt behoben. Ich habe auch den aktuellen .htaccess-Code und alle Tests aktualisiert, die ich mit dem Ergebnis von jedem durchgeführt habe. Ich weiß nicht, wie das https ohne www auf die umleitet www Version aber. Danke
– Cristiano Maia
17. August 2015 um 15:19 Uhr
Normalerweise würden Sie die Servervariable erwarten
HTTPS
festgelegt werden (Ihre Ergebnisse legen etwas anderes nahe). Stecken Sie hinter einem Proxy? (Test E führt wahrscheinlich zu einer Art „rekursivem“ 404?)– Herr weiß
17. August 2015 um 16:44 Uhr
Ich habe gerade 123-reg (Hosting-Unternehmen) kontaktiert, um zu überprüfen, ob sie auf ihrer Seite etwas eingerichtet haben, das die Dinge durcheinander bringt. Selbst wenn ich das funktionierende .htaccess habe und das Umleitungstool in ihrem (123reg) Control Panel einrichte, erhalte ich ERR_TOO_MANY_REDIRECTS.
– Cristiano Maia
17. August 2015 um 17:21 Uhr