Как принудительно использовать SSL для всех запросов?


Есть ли способ принудительно использовать SSL для всех запросов? Очень похоже на возможность использовать ssl администратора, но для всех запросов, включая те, которые не вошли в систему.

 9
ssl
Author: grm, 2010-10-08

4 answers

Вот полное руководство - Включите полную поддержку SSL на Wordpress

 1
Author: sorich87, 2012-12-19 21:02:05

Простая проверка для is_ssl() должна сделать это:

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

Но я бы сделал это в .htaccess, чтобы тоже ловить изображения:

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

Для ISS см. этот ответ о переполнении стека.

 7
Author: fuxia, 2017-05-23 12:40:08

Добавьте это правило в начало файла .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

Это должно быть до правил WordPress.

 1
Author: kosinix, 2016-06-24 01:29:38

Я использовал Действительно простой SSL для всех сайтов моих клиентов, и он работает очень хорошо. Если вы не хотите изменять код, просто установите этот плагин и настройте его.

 -1
Author: Sam, 2016-06-24 00:11:36