워드 프레스 wp-admin https 리디렉션 루프 서버로 nginx를 사용하고 https를 가리 키도록 구성

웹 서버로 nginx를 사용하고 https를 가리 키도록 구성 파일을 편집 했으므로 WordPress URL 설정을 https로 변경하고 WordPress force ssl 관리자 코드를 내 wp-config 파일에 추가했지만 오류가 계속 발생합니다. ” 이 웹 페이지에는 리디렉션 루프가 있습니다

여기에 이미지 설명을 입력하십시오



답변

당신은 한 추가 $_SERVER['HTTPS'] = 'on';귀하의 WP-config.php를에 ?

또한 사용해야 WP 마이그레이션 DB의 마이그레이션하는 플러그인 http://yoursite.comhttps://yoursite.com


답변

비슷한 문제가 있었고 방금 다음 스 니펫을 추가했습니다 wp-config.php.

/** SSL */
define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain  
// a comma-separated list e.g. http,https  
// so check for https existence  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
    $_SERVER['HTTPS']='on';

코덱스에서 제안한대로 . 로드 밸런서 (또는 방화벽) 설정에서 SSL 패스 스루가 활성화 된 경우에만 필요합니다. TLS / SSL 내에서 HTTP를 통해 사이트에 액세스 할 수 있지만 서버가받는 통신은 HTTP 전용입니다. 이를 설명하기 위해 WordPress가 구성 배열 on에서 HTTPS를 “설정”할 수 있도록 위의 헤더가 필요합니다 $_SERVER.


답변

댓글 권한이 없으므로이 추가 내용을 다른 답변으로 게시합니다.

Elias가 제안한 솔루션은 다음을 추가하기 위해 wp-config.php속임수를 사용했습니다.

/** SSL */
define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain  
// a comma-separated list e.g. http,https  
// so check for https existence  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
    $_SERVER['HTTPS']='on';

그러나이 파일의 다른 것보다 먼저 넣을 때만 효과 가있었습니다 !


답변

책의 다른 버전은 wp-config.php 상단에 추가하십시오.

이유는로드 밸런서 또는 적절한 https 값을 통과하지 못하는 무언가가있을 수 있으므로 다른 곳에서 가져 와서 워드 프레스를 위해 위조해야합니다.

if ( (isset($_SERVER['HTTP_X_FORWARDED_PORT'] ) && ( '443' == $_SERVER['HTTP_X_FORWARDED_PORT'] ))
    || (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')) {
    $_SERVER['HTTPS'] = 'on';
}

답변

사실 … 나는이 문제가 있었고 해결은 매우 쉽고 당황했다. 어떻게 든 웹 호스트에서 내 wp-admin 폴더가 삭제되었으므로 동일한 오류 메시지가있는 wp-admin이 없습니다.

여러 가지 다양한 방법으로 테스트 한 후 방금 이것을 보았고 다운로드하고 다시 업로드하면 정상적으로 작동했습니다.

그것을 확인하십시오, 그것은 간단 할 수 있습니다.


답변

5 살짜리 질문 …

SSL 인증서를 설치 하고 wp-cli.phar httphttps사용 하는 모든 링크를 변경 한 후 여기에있는 오류가 발생 했습니다 .

나는 다양한 구성을 시도했지만 이것을 설정하지 않으면 아무도 이것을 해결하지 않는 것 같습니다.

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);

이에:

define('FORCE_SSL_ADMIN', false);
define('FORCE_SSL_LOGIN', false);

로그인 페이지를 볼 수는 있었지만 실제로 로그인 할 수 없었습니다. 나는 두 가지 대답을 시도했지만 불행히도 도움이되지 않았습니다.

/** SSL */
define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https   
// so check for https existence   
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== true)
     $_SERVER['HTTPS']='on';

어떤 이유로, 나는 이유를 모른다-나는

! == 거짓

! == true

호스트로 nginx를 실행하고 nginx 장치에 대한 프록시를 역으로 사용하고 있습니다 … 누군가 왜 효과가 있는지 아는 사람이 있으면 알려주십시오.