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


9

すべてのリクエストにSSLを強制する方法はありますか?admin 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については、Stack Overflowでこの回答を参照してください。


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のコードは、いくつかの正規表現文字を除いてほとんど同じですが、どちらがより安定しているかはわかりますか?
prosody-Gab Vereable Context 19/02/20

-1

私はすべてのクライアントサイトにReally Simple SSLを使用しましたが、非常にうまく機能します。コードを変更したくない場合は、このプラグインをインストールして構成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.