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.

grm
quelle

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 .

Fuxia
quelle
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.

kosinix
quelle
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.

Sam
quelle