Como forçar o SSL para todas as solicitações?


9

Existe uma maneira de forçar o SSL para todas as solicitações? Muito parecido com a opção de usar admin ssl, mas para todas as solicitações, incluindo as que não estão logadas.

Respostas:



7

Uma verificação simples is_ssl()deve fazer isso:

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

Mas eu faria isso no .htaccess para capturar imagens também:

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

Para o ISS, veja esta resposta no Stack Overflow .


1

Adicione esta regra à parte superior do arquivo .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

Isso deve ocorrer antes das regras do WordPress.


O código de codex.wordpress.org/Administration_Over_SSL é quase idêntico, exceto por alguns caracteres regex, alguma idéia se um deles é mais estável?
prosody-Gab Contexto verível

-1

Eu usei o Really Simple SSL em todos os sites de meus clientes e funciona muito bem. Se você não deseja modificar o código, basta instalar este plugin e configurá-lo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.