Як змусити SSL для всіх запитів?


9

Чи є спосіб застосувати SSL для всіх запитів? Начебто варіант використовувати адмін ssl, але для всіх запитів, включаючи ті, які не ввійшли в систему.

Відповіді:



7

Простий чек на це 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 див. Цю відповідь на "Переповнення стека" .


1

Додайте це правило до початку .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.


Код з codex.wordpress.org/Administration_Over_SSL майже ідентичний, за винятком кількох символів регулярного вираження, будь-яка ідея, якщо один із них стабільніший?
Прозоді-Габ Верестний контекст

-1

Я використовував Really Simple SSL на своїх сайтах усіх клієнтів, і він працює дуже добре. Якщо ви не хочете змінювати код, просто встановіть цей плагін і налаштуйте його.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.