web-dev-qa-db-ja.com

すべてのリクエストに対してSSLを強制する方法

すべてのリクエストに対してSSLを強制する方法はありますか? admin sslを使用するオプションとよく似ていますが、ログインしていないものも含め、すべての要求に対して使用できます。

9
grm

これは完全なガイドです - WordpressでSSLの完全サポートを有効にする

1
sorich87

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
fuxia

このルールを.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
kosinix