먼저 내 서버는로드 밸런서 뒤에 있습니다. 내 SSL 인증서는로드 밸런서에 있으며 HTTPS를 처리합니다. 포트 443에서 들어오는 데이터는 포트 80에서 HTTP를 사용하여 Wordpress 서버로 전달됩니다.
그러나 워드 프레스 및 PHP는 내 서버 구성을 모릅니다. 이로 인해 브라우저가 유효한 SSL 인증서의 유효성을 의심하게됩니다.
이 문제를 해결하기 위해 functions.php에 다음 코드를 추가했습니다. 이 코드를 여기 에서 찾았 으며 코덱이 동의합니다 .
/**
* Make PHP HTTPS aware via HTTP_X_FORWARDED_PROTO
*/
if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
$_SERVER['HTTPS']='on';
}
이것은 프론트 엔드에는 훌륭하지만 이제는 내 관리자 계정으로도 / wp-admin /에 액세스 할 수 없습니다. 로그인 한 후 "죄송합니다.이 페이지에 액세스 할 수 없습니다."라는 메시지가 나타납니다. 다른 도움은 제공되지 않습니다.
wp-admin 폴더를 검색하여 "죄송합니다.이 페이지에 액세스 할 수 없습니다"라는 단어를 발견했습니다. 17 번 나타납니다.
이러한 오류 메시지의 대부분은 사용자 권한 확인과 관련이 있습니다.
HTTPS를 '켜짐'으로 유지하고 관리자 액세스를 유지하려면 어떻게합니까?
요약:
- functions.php에 HTTP_X_FORWARDED_PROTO 로직을 추가하기 전에 wp-admin /에 액세스 할 수 있습니다
- functions.php에 HTTP_X_FORWARDED_PROTO 로직을 추가 한 후 wp-admin /에 액세스 할 수 없습니다
- functions.php에 대한 HTTP_X_FORWARDED_PROTO 로직을 제거한 후 wp-admin /에 액세스 할 수 없습니다
최신 정보:
오류 메시지가 wp-admin / menu.php에서 나오고 하단에있는이 코드 덩어리가 있음을 발견했습니다. menu.php
이 파일이라는 것을 알기 위해 오류 끝에 추가 했습니다.
if ( !user_can_access_admin_page() ) {
/**
* Fires when access to an admin page is denied.
*
* @since 2.5.0
*/
do_action( 'admin_page_access_denied' );
wp_die( __( 'Sorry, you are not allowed to access this page. menu.php'), 403 );
}
여전히이 문제를 해결하는 방법을 이해하지 못합니다.
define('FORCE_SSL_ADMIN', true);