grm
  • 0
Учитель

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

  • 0

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

Share
  1. Простая проверка 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 см. этот ответ на Stack Overflow.

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

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

    • 0

Оставить ответ

You must login to add an answer.