Mode maintenance Magento avec filtres IP(s), la meilleure solution

Pour préparer le lancement d’un site, j’ai eu le besoin de mettre ma boutique Magento en mode maintenance.

Plusieurs tutoriaux conseillent d’intégrer un fichier s’appelant “magento.flag” à la racine et d’éditer le fichier “index.php” avec ces quelques lignes. Cela permet d’afficher une page de maintenance personnalisée tout en libérant l’accès à certain utilisateur grâce au filtrage par IP.

$maintenanceFile = ‘maintenance.flag’;
$ip = $_SERVER[‘REMOTE_ADDR’];

/***************
* IP’s allowed in maintenance.
* Use publicly visible IP addresses on LIVE, local if on DEV
***************/

$allowed = array(‘10.0.0.100′,’10.0.0.101′,’10.0.0.20’);

if (file_exists($maintenanceFile) && !in_array($ip, $allowed)) {

$basePath = dirname($_SERVER[‘PHP_SELF’]);
include_once dirname(__FILE__) . ‘/errors/503.php’;
exit;

}

Ce n’est pas la meilleure solution !

J’ai été confronté à un gros problème lorsque mon fichier “maintenance.flag” était automatiquement supprimé de la racine de mon serveur. Il me fallait trouver une autre solution.

La meilleure solution reste le blocage par .htaccess

Une solution plus rapide et plus fiable est le blocage par adresse IP.

Intégrez le bout de code suivant dans votre .htaccess après le #RewriteEngine ON

############################################
## 503 Maintenance mode
RewriteCond %{REQUEST_URI} !^/maintenance/
RewriteCond %{REMOTE_HOST} !^YOUR\.IP\.ADDRESS\.HERE$
RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1$
RewriteRule .* index.php [R=503,L]
ErrorDocument 503 /maintenance/maintenance.html

Vous pouvez maintenance personnaliser votre fichier maintenance.html pour afficher ce que vous souhaitez.

C’est la solution idéale pour maintenir votre site ou préparer le lancement de votre site.

Laisser un commentaire