워드 프레스 wp-admin https 리디렉션 루프


60

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

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

답변:


98

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

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


9
나는 이것을 당신에게 1000 upvotes 줄 것이다!
Sheharyar 2016 년

5
어떤 이유로,이 중요한 단계는 종종 포함되지 않습니다.
Tania Rascia

4
감사합니다! 관리 영역이 SSL로 작동하지 않는 이유를 알아내는 데 몇 시간을 더 절약했을 수 있습니다.
썰매 망치

4
와! $ _SERVER [ 'HTTPS'] = '설정'; 나를 구했다!
PJunior

2
왜 이것이 작동합니까? 이미 Interconnect의 S & R 도구를 사용했습니다. 데이터베이스에 올바른 프로토콜이 이미 있어야합니다.
Jeff

51

비슷한 문제가 있었고 방금 다음 스 니펫을 추가했습니다 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.


2
이는로드 밸런서를 사용하는 모든 사람에게 특히 유용한 솔루션입니다. Dokku (Heroku의 호스트 자체 복제본)를 사용하여이를 호스팅하고 정적 리소스로드 및 wp-admin 리디렉션 루프에 문제가 있습니다. Dokku는 또한 들어오는 443 트래픽을 포트 80으로 전달하기 위해 nginx 리버스 프록시를 수행하여 문제를 해결합니다.
ZachM

3
$_SERVER['HTTPS'] = 'on';HTTP_X_FORWARDED_PROTO가 클라이언트 서버의 설정에도 포함되어 있지 않기 때문에 방금 넣어야했습니다 . |
Tom Roggero

1
AWS로드 밸런서를 사용할 때 문제가 완벽하게 해결되었습니다.
Josh

또한 내 사이트가 AWS의로드 밸런서 뒤에 있으므로 "너무 많은 리디렉션 문제"가 해결되었습니다.
voam

이 경우 .htaccess 파일의 수정 사항을이 답변에 추가하는 것이 중요하다고 생각합니다. stackoverflow.com/questions/36748110/… , @ harshal-lonare 응답을 확인하십시오.
Gustavo Jantsch

11

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

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';

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


1
이것이 바로 내 문제였습니다. 파일 끝에 이것들을 넣었는데 작동하지 않았습니다. 사이트를 처음부터 다시 만들 준비가되었습니다. 그것들을 상단과 bam으로 옮기고 문제가 해결되었습니다. 감사합니다 감사합니다 !!
딘 포 울린

이 솔루션은 Cloudflare와 같은 프록시 DNS 뒤에 유연한 SSL을 사용하는 경우에 좋습니다. 감사합니다.
Stefan P

작동 확인. 감사합니다. API 및 IFrame과 관련된 많은 문제가 해결되었습니다. 사이트에서 HTTPS를 사용할 수 없지만 사용할 수있는 페이지가 필요합니다. 워드 프레스는 이것을 기본 설정으로해야합니다.
Andy

참고로 해당 코드는 어디에나있을 수 있지만 require_once( ABSPATH . 'wp-settings.php' );파일의 끝에있는 코드 여야 합니다.
Damodar Bashyal

7

책의 다른 버전은 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';
}

0

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

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

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


0

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 장치에 대한 프록시를 역으로 사용하고 있습니다 ... 누군가 왜 효과가 있는지 아는 사람이 있으면 알려주십시오.

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