Bakım Site.

5 Cevap php

Bakım Benim PHP site. Tek sayfa bir "bakım şantiyede" ziyaretçileri yönlendirmek için?

Ben ASP.NET için app_offline.htm hakkında bir şeyler duydum.

PHP için de benzer bir şey var mı?

  • Ben her sayfa "mysite.com" için "maintenance.php" yönlendirilecek bunu istiyorum;
  • Ben, varolan site sayfalarında ideal kimse minimum değişiklik yapmak istemiyorum.

Apache version 2.2.15 under Linux
PHP version 5.2.13

5 Cevap

Linux altında benim Apache gibi aşağıdakileri yapın:

". Htaccess" folowing içeriğe sahip site köküne altında dosya oluşturuldu:

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{REQUEST_URI} !/images/mainetnance.png$
RewriteCond %{REQUEST_URI} !/maintenance.php$

# here filter the developer's IP/
#RewriteCond %{REMOTE_HOST} !^888\.888\.888\.888

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

Ben maintenance.php için bir görüntü (/ images / mainetnance.png) kullanın çünkü,. Png dosyaları filtrelemek için, ve bu görüntü çünkü küresel yönlendirme, görünür kalması gerektiğini ekledi remark etmektir.

Sen gerçekten yeterli detay (sunucu, çerçeve, vb) vermeyin. . Apache üzerinde iseniz, htaccess ekleyin:

# prevent infinite redirect loops
RewriteCond %{REQUEST_URI} !^/back-soon-updating.php$
# not on development server
RewriteCond %{HTTP_HOST} .com$
# let admins enter to verify the update has worked
RewriteCond %{QUERY_STRING} !c=u
RewriteRule .* back-soon-updating.php [L,R=307]

PHP yolu: Bir maintainance.php oluşturun ve index.php bunu ekleyin:

$offline = true; // <== change this to false when you go online again.

if($offline){
  header("Location: maintainance.php");  // <== redirects all to maintainance.php
  exit;
}

Orada hiçbir "Küresel yolu", ya siz, web sunucusu yapılandırmak için belirli bir siteye gitmek için, ya da her yerde bir sayfa eklerseniz, eklemesini

header("Location: offline.php");
die();

Geçici yeniden yönlendirmek için.

(HTTP Response Kod 503) yanı sıra tepki olarak uygun başlığını ayarlamanız gerekir. mod_rewrite ve mod_headers kullanarak yapmanın Apache tek yolu vardır

Ancak gerek kalmadan basit bir çözüm için mod_headers, aşağıdaki adımları izleyin

  • Bir PHP bakım komut geliştiriciler dışında tüm kullanıcıları yönlendirmek için Coronatus tarafından belirtildiği gibi apache conf /. Htaccess kullanın. (Zach tarafından belirtildiği gibi bir 307 yönlendirme kodu kullanarak) emin yönlendirme gerçekten geçici olun
  • PHP komut dosyası, komut çok başında aşağıdaki yanıt başlığını ayarlayın.

header('HTTP/1.1 503 Service Temporarily Unavailable') //send the proper response code

header('Retry-After: 3600') //Retry after an hour

Bu ne istediğinizi almak gerekir.