सबसे पहले मेरा सर्वर एक लोड बैलेंसर के पीछे बैठा है। मेरा एसएसएल प्रमाणपत्र लोड बैलेंसर पर बैठता है और HTTPS को संभालता है। पोर्ट 443 पर आने वाले डेटा को पोर्ट 80 पर HTTP का उपयोग करके Wordpress सर्वर पर भेजा जाता है।
हालाँकि, वर्डप्रेस और php मेरे सर्वर कॉन्फ़िगरेशन को नहीं जानते हैं। यह ब्राउज़र को मेरे वैध एसएसएल प्रमाणपत्र की वैधता के बारे में संदेह करने का कारण बनता है।
इसे ठीक करने के लिए मैंने निम्न कोड को 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 को 'कैसे' रखूं और एडमिन एक्सेस को बरकरार रखूं?
सारांश:
- कार्यों में HTTP_X_FORWARDED_PROTO तर्क जोड़ने से पहले। मैं wp-admin / का उपयोग कर सकता हूं
- HTTP_X_FORWARDED_PROTO तर्क को फ़ंक्शन में जोड़ने के बाद। मैं wp-admin तक नहीं पहुँच सकता / सकती
- HTTP_X_FORWARDED_PROTO लॉजिक को फंक्शन्स में हटाने के बाद।
अपडेट करें:
मुझे पता चला है कि त्रुटि संदेश 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);