it-swarm.com.de

Keine Navigationslinks auf 404 Seiten

Wenn ich eine Seite besuche, die nicht existiert, erwarte ich weiterhin die primären und sekundären Links wie auf jeder anderen Seite, aber ich erhalte keine Navigationslinks auf der 404-Seite. Siehe auch Keine Navigationslinks auf 404 Seiten .

Ich habe eine Lösung gefunden, bin aber froh, wenn etwas anderes dies beheben kann (möglicherweise ohne zusätzliche Module).

11
niksmac

Sie können dies tun, indem Sie eine Seite in einem benutzerdefinierten Modul definieren.

Erstellen Sie mit hook_menu() eine Seite für die Kategorie "Seite nicht gefunden".

function MODULE_menu() {
  $items['page-not-found'] = array(
    'title' => '',
    'page callback' => 'MODULE_page_not_found',
    'access callback' => TRUE,
  );
  return $items;
}

function MODULE_page_not_found() {
  drupal_set_title('Page not found');
  $cust_err = "";
  $cust_err = $cust_err . "The requested page " . current_path() . " could not be found";
  return $cust_err;
}

Der Seitenrückruf verwendet current_path(), um den Pfad der Seite zurückzugeben, der den 404-Fehler verursacht.

Gehen Sie zu Admin> Config> System> Site-Informationen und geben Sie Seite nicht gefunden ein (gleicher Name wie definiert in hook_menu) unter Standard 404 (nicht gefunden) Seite.

snap1

Jetzt erscheint die Fehlerseite wie im folgenden Screenshot.

snap2

Es ist klar, dass es alle Navigationslinks und auch die Seiten-URL enthält, die den Fehler verursacht (sehr ähnlich der ursprünglichen Seite, die nicht gefunden wurde). Und das in der obigen Antwort von @ Nikhil erwähnte Modul gibt "Die angeforderte Seite wurde nicht gefunden" aus. Enthält jedoch nicht die URL der Seite, die den Fehler verursacht.

14
AjitS

Es gibt ein Modul, mit dem dies funktioniert 404 Navigation

Auf 404 Not Found-Fehlerseiten überspringt Drupal aus Leistungsgründen * das Rendern aller Navigationslinks Ihrer Website *. Einige davon umfassen:

Der Block "Primäre Links" und alle anderen Menü-Links blockieren. Die primären und sekundären Links Ihres Themas. * Es sei denn, Sie haben eine "Standard 404 (nicht gefunden) Seite" unter admin/config/system/site-information konfiguriert.

Es gibt auch ein Patch , um dies in D7 zu beheben.

In D8 Siehe THIS Also THIS

11
niksmac

Es gibt auch gute Modulalternativen:

  • Suche 404

    Anstatt eine Standard-Seite "404 Seite nicht gefunden" anzuzeigen, führt dieses Modul eine Suche nach den Schlüsselwörtern in der URL durch, z. Wenn ein Benutzer zu http://example.com/does/not/exist wechselt, führt dieses Modul eine Suche nach "existiert nicht" durch und zeigt das Ergebnis der Suche anstelle der 404-Seite an . Dies soll dazu beitragen, dass Besucher von alten URLs, die von anderen Websites oder von Suchindizes verlinkt wurden, nicht mehr eingehen.

  • Fast 404

    Drupal hat teure 404 Fehler. Auf einer "durchschnittlichen" Site mit einer "durchschnittlichen" Modullast können Sie 60-100 MB Speicher auf Ihrem Server belegen, um eine 404 zu liefern. Betrachten Sie eine Seite mit einem fehlerhaften GIF-Link und einer fehlenden CSS-Datei. Diese Seite generiert 2 404s zusammen mit der tatsächlichen Auslastung der Seite. Sie sehen höchstwahrscheinlich 180 MB Arbeitsspeicher für den Server dieser Seite und nicht die 60 MB, die dafür benötigt werden.

6
geekgirlweb

Sie können dies tun, indem Sie eine Seite in einem benutzerdefinierten Modul definieren.

Erstellen Sie mit hook_menu () eine Seite für die Kategorie "Seite nicht gefunden".

 function MODULE_menu() {
   $items['page-not-found'] = array(
     'title' => '',
     'page callback' => 'MODULE_page_not_found',
     'access callback' => TRUE,
   );
   return $items;
 }

 function MODULE_page_not_found() {
   drupal_set_title('Page not found');
   $cust_err = "";
   $cust_err = $cust_err . "The requested page " . current_path() . " ould not be found";
   return $cust_err;
 }

Es ist fast gut. Dieser Code gibt jedoch Folgendes zurück:

"Die angeforderte Seite Seite nicht gefunden konnte nicht gefunden werden"

müssen geändert werden current_path () to request_uri () und wird zurückkehren:

"Die angeforderte Seite/request_uri wurde nicht gefunden"

3
Andy Mark