Come forzare SSL per tutte le richieste?


9

C'è un modo per forzare SSL per tutte le richieste? Proprio come l'opzione di usare admin ssl, ma per tutte le richieste, comprese quelle che non hanno effettuato l'accesso.

Risposte:



7

Un semplice controllo per is_ssl()dovrebbe farlo:

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;
}

Ma lo farei in .htaccess anche per catturare immagini:

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

Per ISS vedi questa risposta su Stack Overflow .


1

Aggiungi questa regola all'inizio di .htaccess:

# 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

Questo dovrebbe essere prima delle regole di WordPress.


Il codice da codex.wordpress.org/Administration_Over_SSL è quasi identico, tranne per alcuni caratteri regex, qualche idea se uno dei due è più stabile?
Contesto verificabile prosody-Gab

-1

Ho usato SSL davvero semplice su tutti i siti dei miei clienti e funziona benissimo. Se non si desidera modificare il codice, è sufficiente installare questo plugin e configurarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.