Wie kann in D7 überprüft werden, ob die aktuelle Seite einen 404-Fehler von einem Modul / einer Vorlage zurückgibt?
http-status-codes
Andrey Rudenko
quelle
quelle
Antworten:
In Drupal 7 können Sie verwenden
drupal_get_http_header()
.Verwenden Sie in der Datei template.php diesen Code.
In Drupal 8 können Sie den folgenden Code in einem Hook verwenden.
quelle
if ($status == '403 Forbidden') { /* ... do stuff ... */ }
system.404
Route basierende Lösung für Drupal 8 funktioniert nicht, wenn Sie unter Konfiguration> System> Grundlegende Websiteeinstellungen eine Knotenseite als 404-Seite angegeben haben . In der Antwort von @Gervase finden Sie eine Lösung, die funktioniert, wenn Sie eine benutzerdefinierte 404-Seite angegeben haben oder nicht.Drupal 8.2.x:
Leider funktioniert drupal_get_http_header ("status") nicht mehr.
Versuchen:
Eine Diskussion darüber gibt es hier: https://www.drupal.org/node/1969270
quelle
getStatusCode
Funktion.Dies ist die einfachste Methode, um in Drupal 7 Zugriff verweigert (403) und Seite nicht gefunden (404) zu erkennen.
quelle
$router_item
wird nicht leer sein, wenn diesite_404
Variable auf einen Knotenpfad festgelegt ist, sodass zusätzliche Überprüfungen erforderlich wären.