29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / eZ Publish / eZ Publish : Installations et mises à jour / eZ Publish : redirection temporaire 503 pour site en maintenance





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

eZ Publish : redirection temporaire 503 pour site en maintenance

Date de publication: le lundi 6 juin 2011 à 21h37
Dernière modification: par Pascal BOYER le lundi 6 juin 2011 à 23h01
» Article suivant: eZ Publish : faire cohabiter une version 3.x (PHP4) et une version 4.x (PHP5)

Cet article n'est rien d'autre qu'un complément d'information à cet autre article:

Il ne s'agit donc ici que de présenter le contenu des 3 fichiers:

  1. 503.php
  2. .htaccess
  3. maintenance.html

dans le cas particulier d'un site eZ Publish installé sur un serveur mutualisé d'un hébergeur.

Fichier cgi-bin/503.php

<?php
/* On bufferise le texte html ci-dessous avant de l'envoyer */
ob_start();
/* On définit la version utilisée du protocole HTTP et le code statut (ici 503) HTTP à envoyer */
header("HTTP/1.1 503 Service Temporarily Unavailable");
/* Cette ligne est nécessaire si PHP s'exécute en mode CGI (voir ci-dessous) */
header("Status: 503 Service Temporarily Unavailable");
/* On indique au robots de repasser dans 3600 secondes */
header("Retry-After: 3600");
/* ??? */
header("X-Powered-By");
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="fr-FR">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta http-equiv="Content-language" content="fr-FR" />
  <title>503 Service Temporarily Unavailable</title>
 </head>
 <body>
  <h1>Service Temporairement inaccessible</h1>
  <p>Le serveur est temporairement dans l'incapacité de répondre à votre requête en raison des travaux de maintenance dont il fait l'objet. Veuillez revenir ultérieurement</p>
 </body>
</html>
 

Fichier .htaccess

#La directive Options n'est pas obligatoire et indique ici que le serveur est autorisé à suivre les liens
#    symboliques dans le répertoire où est placé le fichier .htaccess
Options +FollowSymLinks
 
#La directive RewriteEngine sert à activer le module de réécriture des URI
#En commentant cette ligne on désactive la redirection
RewriteEngine On
 
#La directive RewriteBase: voir le lien ci-dessous
RewriteBase /
 
# ============ POUR LES ROBOTS ============
#
#Cette directive RewriteCond définit la première condition de réécriture d'URI. Ici elle indique:
#    pour tout robot dont l'identifiant contient une des valeurs définies par la ligne (en clair, pour tous
#    les robots de google)
RewriteCond %{HTTP_USER_AGENT} ^.*(Googlebot|Googlebot|Mediapartners|Adsbot|Feedfetcher)-?(Google|Image)? [NC]
 
#Cette directive RewriteCond définit la deuxième condition de réécriture d'URI. Ici elle indique:
#    pour toutes les pages demandées, sauf /cgi-bin/503.php
#    Le drapeau [NC] signifie "No Case" c'est à dire "Insensible à la casse"
RewriteCond %{REQUEST_URI} !^/cgi-bin/503.php [NC]
 
#La directive RewriteRule définit la règle de réécriture (il faut que les deux conditions définies ci-dessus 
#    soient réunies pour qu'elle s'applique).
#    Ici, la syntaxe indique qu'il faut substituer tout URI demandé par /cgi-bin/503.php
#    IMPORTANT: le chemin vers le fichier 503.php doit être identique au chemin défini dans la deuxième condition.
#               Sinon, c'est le message d'erreur assuré !
RewriteRule .* /cgi-bin/503.php
 
# ============ POUR LES VISITEURS ============
#
# Cette directive RewriteCond définit la première condition de réécriture d'URI. Ici elle indique:
#    quelle que soit l'@IP de provenance de la requête, sauf pour l'@ 82.67.66.131 (celle de la machine à partir
#     de laquelle vous effectuez la maintenance du site)
RewriteCond %{REMOTE_ADDR} !^82\.67\.66\.131
 
# Cette directive RewriteCond définit la deuxième condition de réécriture d'URI. Ici elle indique:
#    pour toutes les pages demandées, sauf /cgi-bin/maintenance.html
RewriteCond %{REQUEST_URI} !^/maintenance.html [NC]
 
#La directive RewriteRule définit la règle de réécriture (il faut que les deux conditions définies
#    ci-dessus soient réunies pour qu'elle s'applique). Ici, la syntaxe indique qu'il faut substituer tout URI demandé
#    par l'affichage de la page maintenance.html
#    Le drapeau R  (R pour Redirect = Redirection) définit le code de redirection. 302 signifie une redirection temporaire.
#    Le deuxième drapeau, L, veut dire Last (dernier). On indique ainsi qu'il s'agit de la dernière règle que l'on
#    souhaite appliquer.
#    IMPORTANT: le chemin vers le fichier maintenance.html doit être identique au chemin défini dans la deuxième condition.
#               Sinon, c'est le message d'erreur assuré !
RewriteRule .* /maintenance.html  [R=302,L]
 

Fichier maintenance.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="fr-FR">
 <head>
  <title>503 Service Temporarily Unavailable</title>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <meta http-equiv="Content-language" content="fr-FR" />
  <style type="text/css" media="all">
   body {test-align:center;}
   #texte {
    width:440px;
    height: 180px;
    margin: 20px auto;
    padding: 30px;
    background-color: #C3CAFF;
    box-shadow: 2px 3px 9px rgba(0, 0, 0, 0.4);
    text-align: justify;
    }
  </style>
 </head>
 <body>
<!-- IL EST INUTILE DE VOULOIR AFFICHER UNE IMAGE - MÊME EN PASSANT PAR UNE RÈGLE CSS POSITIONNÉE DANS LE <head></head> - 
      CAR LA REQUÊTE POUR CHARGER L'IMAGE VA FORCÉMENT ÊTRE REDIRIGÉE VERS LE FICHIER maintenance.html ! -->
<!--  <div id="image">
   <img src="/travaux2b.jpg" alt="le site est en travaux. Revenez ultérieurement" />
  </div>
-->
  <div id="texte">
  <h3>Le 6 juin 2011,</h3>
 
  Le site xxxxx.org est actuellement en phase de maintenance.
  <br />
  <br />
  L'équipe de XXXXX vous prie de bien vouloir l'excuser pour le dérangement occasionné et vous invite chaleureusement à revenir dans quelques heures.
  <br />
  <br />
  Cordialement,
  <br />
  <br />
  Le Président,<br />
  <b>Roger COUDERC</b>
  </div>
 </body>
</html>

Commentaires