Wie erzwinge ich SSL für alle Anfragen?


9

Gibt es eine Möglichkeit, SSL für alle Anforderungen zu erzwingen? Ähnlich wie die Option, admin ssl zu verwenden, jedoch für alle Anfragen, einschließlich derjenigen, die nicht angemeldet sind.

Antworten:



7

Eine einfache Überprüfung für is_ssl()sollte es tun:

add_action( 'plugins_loaded', 'wpse_2718_force_ssl' );

function wpse_2718_force_ssl()
{
    if ( is_ssl() )
        return;

    wp_redirect(
        'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] 
    );
    exit;
}

Aber ich würde dies in .htaccess tun, um auch Bilder zu fangen:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Informationen zur ISS finden Sie in dieser Antwort unter Stapelüberlauf .


1

Fügen Sie diese Regel oben in .htaccess hinzu:

# BEGIN Force SSL
# This should be the first rule before other rules
<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{HTTPS} !=on
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
# END Force SSL

Dies sollte vor den Regeln von WordPress sein.


Der Code von codex.wordpress.org/Administration_Over_SSL ist bis auf ein paar Regex-Zeichen fast identisch. Gibt es eine Idee, ob einer der beiden stabiler ist?
Prosodie-Gab Vereable Context

-1

Ich habe wirklich einfaches SSL für alle Websites meiner Kunden verwendet und es funktioniert sehr gut. Wenn Sie den Code nicht ändern möchten, installieren Sie einfach dieses Plugin und konfigurieren Sie es.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.