すべてのリクエストに対してSSLを強制する方法はありますか? admin sslを使用するオプションとよく似ていますが、ログインしていないものも含め、すべての要求に対して使用できます。
これは完全なガイドです - WordpressでSSLの完全サポートを有効にする
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については スタックオーバーフローに関するこの回答を参照してください 。
このルールを.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の規則の前にあるべきです。