¿Cómo forzar SSL para todas las solicitudes?


9

¿Hay alguna forma de forzar SSL para todas las solicitudes? Al igual que la opción de usar ssl admin, pero para todas las solicitudes, incluidas las que no están conectadas.

Respuestas:



7

Un simple chequeo para is_ssl()debería hacerlo:

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

Pero también haría esto en .htaccess para capturar imágenes:

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

Para ISS, vea esta respuesta en Stack Overflow .


1

Agregue esta regla a la parte superior de .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

Esto debería ser antes de las reglas de WordPress.


El código de codex.wordpress.org/Administration_Over_SSL es casi idéntico a excepción de algunos caracteres regex, ¿alguna idea de si alguno es más estable?
Prosody-Gab Vereable Context

-1

He usado SSL realmente simple en todos mis sitios de clientes y funciona muy bien. Si no desea modificar el código, simplemente instale este complemento y configúrelo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.