Magento Frontend deaktivieren
Standardmäßig kann man einen Magento-Shop zwar in den Wartungsmodus schicken, jedoch wird damit auch das Backend deaktiviert. Möchte man nur das Frontend deaktivieren, setzt man dies am besten per PHP um. Hierfür sind ein paar kleine Änderungen an der index.php notwendig.
Zuerst benutzt man eine Funktion namens curPageURL um die aufgerufene URL zu lesen. Die Funktion setzt man am besten unter den auskommentierten Kopf der index.php:
1 2 3 4 5 6 7 8 9 10 11 12 | // Holt die aufgerufene URL function curPageURL() { $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return $pageURL; } |
Direkt darunter folgt die Funktion zur Validierung des aufgerufenen Links:
1 2 3 4 5 6 | // Prüft ob eine Textpassage in einem Link vorkommt function verifyLink($urlpart) { $url = curPageURL(); $contains = strpos($url, $urlpart); return $contains; } |
Vor der Zeile “if (file_exists($maintenanceFile)) {” fügt man nun den Aufruf von verifyLink(…) ein:
1 2 3 4 5 6 7 | // Prüfen ob ein korrekter Backend-Link aufgerufen wurde, // wenn nicht, einen Fehler anzeigen. $urlpart = '/admin/'; if (!verifyLink($urlpart)) { include_once dirname(__FILE__) . '/errors/404.php'; exit; } |
Der Funktion wird in diesem Beispiel der String “/admin/” übergeben. Ruft der Benutzer also eine Seite auf, die nicht zum Adminbereich (http://test.de/index.php/admin) gehört (z.B.: “http://test.de/index.php”) erhält er als Antwort die Standard 404-Seite:


Leave a Reply