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:
- 503.php
- .htaccess
- 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














