Bitte, empfehlen Sie mir nicht den langen und sehr detaillierten 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. Hier ist mein Problem:
Mit meinem aktuellen .htaccess geschieht Folgendes:
https://www.dukescasino.com/ - funktioniert einwandfrei
https://dukescasino.com/ - leitet zu dem oben genannten weiter, was großartig ist
Die beiden folgenden Optionen werden gut geladen, sollten jedoch auf die https-Version umgeleitet werden:
Hier ist der aktuelle .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Ich glaube nicht, dass es relevant ist, aber wenn ja, ist hier die Liste der aktuell aktiven Plugins:
Edit 1 - Durchgeführte Tests:
Test 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: ERR_TOO_MANY_REDIRECTS
Test B:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Ergebnis: ERR_TOO_MANY_REDIRECTS
Test C:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Ergebnis: ERR_TOO_MANY_REDIRECTS
Test D:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Ergebnis: ERR_TOO_MANY_REDIRECTS
Test E:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_Host} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_Host}%{REQUEST_URI}$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI}$1
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Ergebnis: 302 gefunden. Bei dem Versuch, ein ErrorDocument zu verwenden, um die Anforderung zu verarbeiten, wurde außerdem ein Fehler 500 Internal Server Error festgestellt.
Problem gelöst!
Letzter .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Auf Dreamhost funktionierte dies:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{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>
Für mich geht das:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
In meinem Fall enthielt die htaccess-Datei viele Regeln, die von Plugins wie Far Future Expiration und WPSuperCache installiert wurden, sowie die Zeilen von WordPress selbst.
Um die Dinge nicht durcheinander zu bringen, musste ich die Lösung an die Spitze von htaccess setzen (dies ist wichtig, wenn Sie es am Ende setzen, führt dies zu 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 von wordpress nicht durcheinander gebracht, falls sich einige Einstellungen ändern. Auch die <IfModule>
Abschnitt kann ohne Probleme wiederholt werden.
Ich muss mich bei Jason Shah für die ordentliche htaccess-Regel bedanken .
Für Ihre Informationen hängt es wirklich von Ihrem Hosting-Anbieter ab.
In meinem Fall ( Infomaniak ) funktionierte nichts darüber und ich bekam eine unendliche Weiterleitungsschleife.
Der richtige Weg, dies zu tun, ist eigentlich auf ihrer Support-Site erklärt :
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://your-domain.com/$1 [R=301,L]
Überprüfen Sie also immer Ihren Hosting-Provider. Hoffentlich haben sie einen Artikel, der erklärt, wie das geht. Ansonsten fragen Sie einfach den Support.
Warum ?: Wenn Wordpress Ihre Re-Write-Regeln bearbeitet, stellen Sie sicher, dass Ihre HTTPS-Regel nicht entfernt wird! Dies ist also kein Konflikt mit nativen Wordpress-Regeln.
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
#Your our Wordpress rewrite rules...
</IfModule>
# END WordPress
Hinweis: Sie müssen WordPress Address & Site Address URLs in Allgemeine Einstellungen auch in https://
ändern (wp-admin/options-general.php
).
Ich habe festgestellt, dass alle in diesem Q & A aufgeführten Lösungen für mich leider nicht funktionierten. Was hat funktioniert, war:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
RewriteCond %{HTTP_Host} ^example\.com$ [OR]
RewriteCond %{HTTP_Host} ^www\.example\.com$
RewriteRule ^/?$ "https\:\/\/www\.example\.com\/" [R=301,L]
</IfModule>
# End Wordpress
Beachten Sie, dass die obigen Wordpress-Regeln für Wordpress im Mehrbenutzer-Netzwerkmodus gelten. Wenn sich Wordpress im Single-Site-Modus befindet, würden Sie Folgendes verwenden:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_Host} ^example\.com$ [OR]
RewriteCond %{HTTP_Host} ^www\.example\.com$
RewriteRule ^/?$ "https\:\/\/www\.example\.com\/" [R=301,L]
</IfModule>
# End Wordpress
Nichts davon hat für mich funktioniert. Aber diese Zeilen lösten dasselbe Problem auf meiner WordPress-Site:
RewriteEngine On
RewriteCond %{HTTP:HTTPS} !on
RewriteRule .* https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]
Fügen Sie dies in die .htaccess-Datei von WordPress ein:
RewriteCond %{HTTP_Host} ^yoursite.com [NC,OR]
RewriteCond %{HTTP_Host} ^www.yoursite.com [NC]
RewriteRule ^(.*)$ https://www.yoursite.com/$1 [L,R=301,NC]
Daher sollte die Standard-.htaccess-Datei von WordPress folgendermaßen aussehen:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_Host} ^yoursite.com [NC,OR]
RewriteCond %{HTTP_Host} ^www.yoursite.com [NC]
RewriteRule ^(.*)$ https://www.yoursite.com/$1 [L,R=301,NC]
</IfModule>
einfachste Möglichkeit, http zu https in wordpress umzuleiten, um site_url zu ändern und von http://example.com zu https://example.com zu wechseln. Wordpress übernimmt die Umleitung. (deshalb erhalten Sie den Fehler "zu viele Weiterleitungen", WordPress leitet zu http um, während .htaccess zu https umgeleitet wird.)
Keine, wenn dies für mich funktionierte. Zuerst musste ich bei meinem Provider nachsehen, wie er SSL in .htaccess
aktiviert, den mein Provider angibt
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:HTTPS} !on
RewriteRule (.*) https://%{SERVER_NAME}/$1 [QSA,L,R=301]
</IfModule>
Was ich jedoch tagelang recherchieren musste, war, dass ich wp-config.php
die folgenden Zeilen hinzufügen musste, da sich meine Website hinter einem Proxy befindet:
/**
* Force le SSL
*/
define('FORCE_SSL_ADMIN', true);
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS']='on';
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
RewriteEngine On
RewriteCond %{HTTP_Host} ^digitalsoftwaremarket.com [NC]
RewriteRule ^(.*)$ http://www.digitalsoftwaremarket.com/$1 [L,R=301]
</IfModule>
Hier ist eine alternative Lösung, die Sie verwenden können, wenn Sie .htaccess
nicht bearbeiten möchten:
add_action( 'template_redirect', 'nonhttps_template_redirect', 1 );
function nonhttps_template_redirect() {
if ( is_ssl() ) {
if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'https' ) ) {
wp_redirect( preg_replace( '|^http://|', 'https://', $_SERVER['REQUEST_URI'] ), 301 );
exit();
} else {
wp_redirect( 'https://' . $_SERVER['HTTP_Host'] . $_SERVER['REQUEST_URI'], 301 );
exit();
}
}
}
Sie können dies am unteren Rand Ihres Designs platzieren. functions.php
Der obige letzte Test und Test A, B, C, D, E funktionierten nicht für mich. Ich habe gerade unter zwei Zeilen Code verwendet und es funktioniert in meiner WordPress-Website:
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.thehotskills.com/$1 [R=301,L]
Ich bin nicht sicher, wo ich den Fehler gemacht habe, aber diese Seite hat mir geholfen.
Weiterleitung von http nach https: // www
RewriteEngine On RewriteCond %{HTTP_Host} ^example\.com [NC] RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Das wird sicher funktionieren!
Fügen Sie diesen Code einfach in Ihre .htaccess-Datei in WordPress ein oder ersetzen Sie diesen
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress