웹 서버로 nginx를 사용하고 https를 가리 키도록 구성 파일을 편집 했으므로 WordPress URL 설정을 https로 변경하고 WordPress force ssl 관리자 코드를 내 wp-config 파일에 추가했지만 오류가 계속 발생합니다. " 이 웹 페이지에는 리디렉션 루프가 있습니다 "
웹 서버로 nginx를 사용하고 https를 가리 키도록 구성 파일을 편집 했으므로 WordPress URL 설정을 https로 변경하고 WordPress force ssl 관리자 코드를 내 wp-config 파일에 추가했지만 오류가 계속 발생합니다. " 이 웹 페이지에는 리디렉션 루프가 있습니다 "
답변:
당신은 한 추가 $_SERVER['HTTPS'] = 'on';
귀하의 WP-config.php를에 ?
또한 사용해야 WP 마이그레이션 DB의 마이그레이션하는 플러그인 http://yoursite.com
에https://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
.
$_SERVER['HTTPS'] = 'on';
HTTP_X_FORWARDED_PROTO가 클라이언트 서버의 설정에도 포함되어 있지 않기 때문에 방금 넣어야했습니다 . |
댓글 권한이 없으므로이 추가 내용을 다른 답변으로 게시합니다.
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';
그러나이 파일의 다른 것보다 먼저 넣을 때만 효과 가있었습니다 !
require_once( ABSPATH . 'wp-settings.php' );
파일의 끝에있는 코드 여야 합니다.
책의 다른 버전은 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';
}
5 살짜리 질문 ...
SSL 인증서를 설치 하고 wp-cli.phar http
를 https
사용 하는 모든 링크를 변경 한 후 여기에있는 오류가 발생 했습니다 .
나는 다양한 구성을 시도했지만 이것을 설정하지 않으면 아무도 이것을 해결하지 않는 것 같습니다.
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 장치에 대한 프록시를 역으로 사용하고 있습니다 ... 누군가 왜 효과가 있는지 아는 사람이 있으면 알려주십시오.