উত্তর:
এখানে একটি সমাধান রয়েছে:
রুট আকারে সূচক খুলুন এবং যুক্ত করুন ('অনুমোদিত' অ্যারেটি আপনি যে আইপিটি সাইটে অ্যাক্সেস করতে সক্ষম হতে চান তা সম্পাদনা করার কথা মনে রেখে);
$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/mainenter-mode-in-magento/
মুষ্টিমেয় এক্সটেনশন রয়েছে যা কেবল এটি করে। maintenance.flag
কার্যকারিতা এখনও রয়েছে বলে এগুলি এখনও একটি সাময়িক কাজের মাত্রা । এটি অপসারণ করতে আপনাকে ম্যানুয়ালি 'index.php' ফাইল সম্পাদনা করতে হবে যা পরিবর্তে আপগ্রেডগুলির সাথে সমস্যা তৈরি করতে পারে।
if (file_exists($maintenanceFile)) {
include_once dirname(__FILE__) . '/errors/503.php';
exit;
}
এভাবেই 'ইনডেন্টেন্স.ফ্লেগ' কার্যকারিতা 'সূচি.এফপি' তে প্রয়োগ করা হয়। তবে যেহেতু আপনাকে 'index.php' সম্পাদনা করতে হবে আপনি আরও বিস্তৃত কিছু করতে পারেন, যেমন:
if (file_exists($maintenanceFile) && strpos($_SERVER['REQUEST_URI'], '/admin/') === false) {
include_once dirname(__FILE__) . '/errors/503.php';
exit;
}
উপরের কোডটি দ্রুত এবং নোংরা হ্যাক নোট করুন। আপনি এটিকে আরও বিকাশ করতে পারেন, কারণ আমি কেবল ইউআরএলে '/ অ্যাডমিন /' আছে কিনা তা পরীক্ষা করে দেখছি।
এবং যদি আপনার কোনও লোড ব্যালান্সারের পিছনে HTTP_X_FORWARDED_FOR শিরোনামে ক্লায়েন্ট আইপি পাস করছে তবে এটির জন্য অ্যাকাউন্টটি নিশ্চিত করে নিন:
// 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;
}
}
আপনি নিজের রক্ষণাবেক্ষণ পৃষ্ঠা সেট আপ করতে পারেন এবং রক্ষণাবেক্ষণ পৃষ্ঠাটি প্রেরণ করতে ত্রুটিযুক্ত ডকুমেন্ট 503 ব্যবহার করতে পারেন। রাইরাইটকন্ডের মাধ্যমে আপনার আইপি-ঠিকানাটি বাদ দিন যাতে আপনি যেভাবেই পৃষ্ঠাটি অ্যাক্সেস করতে পারেন এবং পুনঃনির্দেশিত না হন:
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]
দয়া করে নোট করুন যে পরীক্ষার জন্য পেমেন্ট গেটওয়ের মতো অতিরিক্ত পরিষেবাদি শ্বেত তালিকাভুক্ত করাও প্রয়োজনীয় হতে পারে।