İlk sunucum bir yük dengeleyici arkasında oturuyor. SSL sertifikam yük dengeleyicisinde oturuyor ve HTTPS kullanıyor. 443 numaralı bağlantı noktasına gelen veriler 80 numaralı bağlantı noktasındaki HTTP kullanılarak Wordpress sunucusuna iletilir.
Ancak, wordpress ve php sunucu yapılandırmamı bilmiyor. Bu, tarayıcının geçerli SSL sertifikamın geçerliliği hakkında şüphelenmesine neden olur.
Bunu düzeltmek için function.php dosyasına aşağıdaki kodu ekledim. Bu kodu burada buldum ve kodeks kabul ediyor .
/**
* 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';
}
Bu ön uç için harika çalışıyor, ancak şimdi / wp-admin / Yönetici hesabımda bile erişilemiyor. Giriş yaptıktan sonra "Maalesef bu sayfaya erişim izniniz yok" şeklinde bir mesaj alıyorum. Başka yardım sağlanmamaktadır.
Bu yüzden wp-admin klasörünü aradım ve "Üzgünüm, bu sayfaya erişmenize izin verilmiyor" kelimelerini keşfettim. 17 farklı kez görünür.
Bu hata iletilerinin çoğu bir kullanıcı izin denetimi ile ilişkilidir.
HTTPS'yi 'açık' halde nasıl tutabilirim ve yönetici erişimini nasıl koruyabilirim?
Özet:
- Function.php'ye HTTP_X_FORWARDED_PROTO mantığı eklemeden önce wp-admin /
- Function.php'ye HTTP_X_FORWARDED_PROTO mantığı ekledikten sonra wp-admin /
- Function.php HTTP_X_FORWARDED_PROTO mantığını kaldırdıktan sonra wp-admin /
GÜNCELLEME:
Hata mesajının wp-admin / menu.php'den geldiğini ve alttaki kod yığınını keşfettim. menu.php
Bu dosya olduğunu anlamak için hatanın sonuna ekledim .
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 );
}
Bunu nasıl düzeltebileceğimi hala anlamıyorum.
define('FORCE_SSL_ADMIN', true);