모든 요청에 ​​대해 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

이것은 워드 프레스 규칙 이전에 있어야합니다.


codex.wordpress.org/Administration_Over_SSL의 코드는 정규 표현식 문자를 제외하고 거의 동일합니다.
prosody-Gab Vereable Context

-1

모든 클라이언트 사이트에 Really Simple SSL 을 사용 했으며 매우 잘 작동합니다. 코드를 수정하지 않으려면이 플러그인을 설치하고 구성하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.