मैं व्यवस्थापक पहुँच के साथ संस्करण 1.9 रखरखाव ध्वज को कैसे सक्षम करूं


14

क्योंकि मुझे संस्करण 1.9 UI में रखरखाव मोड नहीं दिखता है System > Configuration, इसलिए मैंने maintenance.flagसाइट रूट में एक फ़ाइल को छोड़ दिया । हालाँकि यह मेरे एडमिन पैनल एक्सेस को भी ब्लॉक करता है। क्या कोई मुझे बता सकता है कि एडमिन एक्सेस के साथ साइट रखरखाव मोड कैसे बनाए रखें ?

जवाबों:


16

यहाँ एक समाधान है:

इंडेक्स खोलें। रूट में जोड़ें और (आईपी को सम्‍मिलित करने के लिए आप जिस साइट को एक्‍सेस करना चाहते हैं, उसे सम्‍मिलित करने के लिए 'अनुमत' एरे को संपादित करना याद रखें);

$ip = $_SERVER['REMOTE_ADDR'];

$allowed = array('1.1.1.1','2.2.2.2'); // these are the IP's that are allowed to view the site.

फिर लाइन बदलें

if (file_exists($maintenanceFile)) {

सेवा

 if (file_exists($maintenanceFile) && !in_array($ip, $allowed)) { 

सरल। अब आप साइट तक पहुँच सकते हैं (एडमिन + फ्रंट एंड), जबकि अन्य इसका रखरखाव मोड देखते हैं।

स्रोत: http://inchoo.net/ecommerce/magento/mainurance-mode-in-magento/


5

ऐसे मुट्ठी भर विस्तार हैं जो बस करते हैं। हालाँकि वे अभी भी सिर्फ एक अस्थायी वर्कअराउंड हैं क्योंकि maintenance.flagकार्यक्षमता अभी भी है। इसे हटाने के लिए आपको मैन्युअल रूप से 'index.php' फ़ाइल को संपादित करना होगा जो बदले में उन्नयन के साथ समस्या पैदा कर सकता है।

if (file_exists($maintenanceFile)) {
    include_once dirname(__FILE__) . '/errors/503.php';
    exit;
}

इस प्रकार 'index.php' में 'मेन्टेनेंस.फ्लैग' कार्यक्षमता को लागू किया जाता है। हालाँकि जब से आपको 'index.php' को संपादित करने की आवश्यकता होती है, तब आप कुछ और विस्तृत कर सकते हैं, जैसे:

if (file_exists($maintenanceFile) && strpos($_SERVER['REQUEST_URI'], '/admin/') === false) {
    include_once dirname(__FILE__) . '/errors/503.php';
    exit;
}

कृपया ध्यान दें कि ऊपर दिया गया कोड त्वरित और गंदा हैक है। आप इसे और विकसित कर सकते हैं, जैसा कि मैं अभी जांचता हूं कि क्या url में '/ admin /' मौजूद है।


ऐसा करने से पहले बस यह जांच लें कि request_uri क्या है और तदनुसार स्थिति को संशोधित करें।
कल्याण चक्रवर्ती V

3

और यदि आपका एक लोड बैलेंसर जो HTTP_X_FORWARDED_FOR हैडर में क्लाइंट IP पास कर रहा है, तो इस तरह से इसका हिसाब रखना सुनिश्चित करें:

// account for load balancer that passes client IP
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
   $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
}
if(empty($ip)) {
    $ip = $_SERVER['REMOTE_ADDR'];
}

// whitelist your ips
$allowed = array();
$allowed[]='WHITELIST.IP.ADDRESS.#1';
$allowed[]='WHITELIST.IP.ADDRESS.#2';

if (file_exists($maintenanceFile)) {
    if (file_exists($maintenanceFile) && !in_array($ip, $allowed)) { 
        include_once dirname(__FILE__) . '/errors/503.php';
        exit;
    }
}

एक एडब्ल्यूएस एक् 2 लोड बैलेंसर का उपयोग करने वालों के लिए अत्यधिक उपयोगी
आश्रय

1

आप अपना स्वयं का रखरखाव पृष्ठ सेट कर सकते हैं और रखरखाव पृष्ठ भेजने के लिए ErrorDocument 503 का उपयोग कर सकते हैं। अपने IP पते को RewriteCond के माध्यम से बाहर निकालें ताकि आप किसी भी तरह से पृष्ठ तक पहुँच सकें और पुनर्निर्देशित न हों:

RewriteEngine On
ErrorDocument 503 /errors/503.php
RewriteCond %{REMOTE_ADDR} !^4.3.2.1 [NC] #your IP
RewriteCond %{REMOTE_ADDR} !^4.3.2.2 [NC] #other IP if needed
RewriteCond %{REMOTE_ADDR} !^127.0.0.1 [NC] #localhost maybe needed depending on server setup
RewriteCond %{REQUEST_URI} !^/errors/503.php
RewriteCond %{REQUEST_URI} !^/media/
RewriteCond %{REQUEST_URI} !^/images/
RewriteCond %{REQUEST_URI} !^/css/
RewriteCond %{REQUEST_URI} !^/js/
RewriteCond %{REQUEST_URI} !^/skin/
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} !^/admin #your admin path
RewriteCond %{REQUEST_URI} !^/admin/
RewriteRule ^(.*) http://www.yourwebsite.com/errors/503.php [L,R=503]

कृपया ध्यान दें कि परीक्षण के लिए भुगतान गेटवे जैसी अतिरिक्त सेवाओं को श्वेतसूची में करना भी आवश्यक हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.