"Bakım Modu" nasıl uygulanacağı

5 Cevap php

Ben en fazla 60 sayfaları ile bir web sitesi (PHP) içindeşa etmişlerdir. Ben sadece şimdi (ne yazık ki) ben geçici web sitesiçindei devre dışı bırakmak ve Bakım Modu sayfası işvardırt etmek içiçinde bir yönetici sağlamak içiçinde bir "Bakım Modunda" özelliği yerleşik olması gerektiğiçindei anlamışlardır. Bu sadece bir yönetici olarak oturum bu web sitesiçindei görüntülemek içiçinde iziçinde verecek.

Gördüğüm seçenekleri şunlardır:

  1. Her PHP sayfasının üstüne yeni bir "içindeclude" dosya ekle.

  2. I have one içindeclude that is used to display the navigation bar on
    every page (navigation class). I could write the Maiçindetenance Mode
    code içinde this class.

Ben başka bir seçenek var mı? 1. seçenek en verimli gibi görünmüyveya ve 2. biri sadece kötü programlama gibi görünüyveya. Her php dosyası üzeriçindede yeni bir dosya eklemek içiçinde başka iyi bir yolu var mı?

Teşekkürler!

ps - Site henüz piyasaya değil

5 Cevap

Sen .htaccess başka bir sayfaya yönlendirme yaparken Bakım Modu için kullanabilirsiniz.

Üç çeşitli örnekleri:

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^11\.111\.111\.111
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ http://domain.com/maintenance.html [R=307,L]

.htaccess “Down For Maintenance” Page Redirect

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$ 
RewriteCond %{REMOTE_HOST} !^888\.888\.888\.888

RewriteRule $ /maintenance.html [R=302,L] 

Redirect to maintenance page during upgrade using .htaccess

# redirect all visitors to alternate site but retain full access for you
ErrorDocument 403 http://www.alternate-site.com
Order deny,allow
Deny from all
Allow from 99.88.77.66

Maintenance mode for apache

auto_prepend_file dizesi

Otomatik olarak ana dosyadan önce çözümlenen bir dosyanın adını belirtir. Bu gerektiren () fonksiyonu ile çağırıldım, include_pathdaki kullanıldığında sanki dosyasına dahil edilir.

None özel değeri başa dosya eklemeyi devre dışı bırakır.

php.ini bu set, ya da apache (sanal) host dosyasının veya php_flag auto_prepend_file file.php ile. htaccess olarak

[Ya php_admin_flag (?)]

edit

  • Belki web kök dir ya da bir alt klasöre dosya dahil koymak gerekir.
  • Ve çıkış aramak veya sonunda ölmek hatırlıyorum.

Bu eski bir soru olduğunu biliyorum ama ben arama üzerinden bu sayfaya rastlamak gelecekte arama için bu ekleme.

Ben bir PHP yönlendirme kullanın.

Her sayfanın en üstünde aşağıdaki satırları ekleyin:

<?php
include('PATH/TO/FILE/config.php');
if(maintenance == 1) {
header('Location: http://mysite.com/maintenance.php);
}
else {
// do nothing
}
?>

Ve config.php de sadece bu yüzden gibi bir değişken yapmak

$maintenance = 0; // turns maintenance mode off

When you want your site to be in maintenance mode just change the "0" to a "1". This will redirect all your site visitors to a maintenance page.

Ben test olmadan oldukça hızlı olduğunu kodu yazdınız ama çalışması gerekir.

Basit yolu site oluşturma konusunda bazı mantık merkezde olacaktır. Eğer bakım modunu açmak ve farklı bir sayfaya olmayan herhangi adminler yönlendirme olabilir bu şekilde. Bu Hepinizin yere kadar haşhaş tutan bazı kod var hayal gibi size sayfa üzerinde herhangi bir ortak küresel değişkenleri yoksa, yani sadece (bir küresel değişkeni kontrol etmek için giriş işlevselliğini genişletmek, yapmak zor olmaz Sadece) setenv yoluyla. htaccess bunu ayarlayabilirsiniz.

IP Adresleri belirtmek yerine, aynı zamanda bir RewriteCond HTTP_USER_AGENT karşı kontrol edebilir ..

RewriteCond %{HTTP_USER_AGENT} !MyCrazyString
RewriteCond %{THE_REQUEST} !upgrade\.txt
RewriteRule .* /upgrade.txt [R=307,L]

Onların Tarayıcının User Agent dize ucuna etiketlendi "MyCrazyString" ile herkes ulaşabiliyorsunuz, herkes bakım modu sayfa / site alır.

Bu yüzden uzun yüksek güvenlik gerekli değildir gibi, bu ideal; actual sunucusu erişimi olan tek adam dünyanın diğer tarafında uykuda olduğunda DSL yeniden eğer önemlisi hızlı ve yöneticileri yaymak kolay, tamamen taşınabilir ve kırmak olmaz.

, O) Cor