Wie verstecke ich die Standardseite / den Standardknoten?

22

Drupal aus der Box ist mit einer Seite (das ist die Standard - Homepage), die mit dem zugeordneten Knotenpfad.

Wie vermeide ich, dass Benutzer darauf zugreifen, und leite sie auf die eigentliche Homepage der Website weiter?

wiifm
quelle
Ich habe die von @kiamlaluno vorgeschlagene Lösung verwendet, um den Knoten auf einen anderen Pfad umzuleiten.

Antworten:

17

Es gibt keine einfache Möglichkeit, diese Seite auszublenden. Wenn Sie es nicht verwenden, können Sie hook_menu_alter () implementieren und es entweder vollständig entfernen oder den Zugriffsrückruf auf setzen FALSE.

Berdir
quelle
1
Hier ist eine gute Antwort von Clive mit dem Code exapmle drupal.stackexchange.com/a/24133/6309
milkovsky
8

Erstellen Sie einen Pfadalias, der von / node zu der Seite umleitet, die Sie als Startseite verwenden möchten.

kiamlaluno
quelle
1
Dies funktioniert bei mir nicht mit dem URL-Alias-Modul, Aliasing / Node to <front> oder index.php. Ich versuche, nur /
John
5
Seltsamerweise habe ich / node zu <front> und es funktioniert gut.
Sean Bannister
Wie Sie @john erlaubt mir die Benutzeroberfläche des Aliasing nicht, mich auf die Titelseite vorwärts zu bewegen. Ich musste stattdessen das Redirect-Modul verwenden.
Postscripter
6

Ich bevorzuge es, den Seitenrückruf von / node so zu ändern, dass ein Fehler 404-Seite angezeigt wird.
Dies zeigt immer Ihre benutzerdefinierte 404-Seite beim Zugriff auf / node.

function yourmodule_menu_alter(&$items) {
    $items['node']['page callback'] = 'drupal_not_found';      
}
Marc Bachmann
quelle
4
<?php
function MY_MODULE_menu_alter(&$callbacks) {
unset($callbacks['node']);
}
?>

oder füge dies zu settings.php hinzu (URL inbound stuff)

<?php
function custom_url_rewrite_inbound(&$result, $path, $path_language) {
  if ($path == 'node') {
    $result = ''; 
  }
}
?>
AyeshK
quelle
2

Ich habe das Redirect- Modul verwendet: Ich habe gerade eine neue 301-Umleitung von nodenach hinzugefügt <front>.

ACD
quelle
1

Ähnlich wie bei berdirs answer ist der folgende Code in einem Modul enthalten, das Teil einer benutzerdefinierten Distribution ist, aus der wir bauen:

function HOOK_menu_alter(&$items) {
  $items['node']['page callback'] = '_HOOK_empty_home';
}

function _HOOK_empty_home() {
  drupal_set_title('');
  return '';
}

Auf diese Weise kann ich den 'Node'-Pfad als Frontpage beibehalten und mithilfe des Kontexts Blöcke positionieren, um die erforderliche Frontpage zu erstellen.

Entziffern
quelle
1

Sie können eine Seite erstellen, die / node zugeordnet ist und nicht veröffentlicht wurde. Daher haben die Benutzer, die diesen Pfad aufrufen, eine verbotene Zugriffsseite

pitop
quelle
1

Die einfache Lösung für mich war, eine Seite zu erstellen, die ich als Startseite verwenden wollte, und die URL auf / node zu setzen. Setzen Sie dann unter / admin / config / system / site-information die Standard-Startseite auf / node. Unter URL wird "/ node" nur dann angezeigt, wenn es tatsächlich von jemandem eingegeben wird. Dies ist schnell, einfach und übersichtlich, vorausgesetzt, Sie möchten die URL Ihrer Homepage auf "/ node" setzen.

Jack McKenzie
quelle
1

Sie können eine neue Seite mit einer Knoten-URL erstellen, und den Benutzern wird eine Nachricht angezeigt, die sie zum Aufrufen der Startseite oder zur Auswahl einer Kategorie weiterleitet.

Mario
quelle
1

Ich habe mehrere Dinge ausprobiert. Für Drupal 7 und 8 stellte ich fest, dass dies am einfachsten ist, ohne Code zu schreiben:

Laden Sie die Module node_page_disable, globalredirect und redirect herunter und aktivieren Sie sie.

(Hinweis: Das Modul node_page_disable leitet / node auf die Fehlerseite 404 nicht gefunden um.)

Fügen Sie dann eine Umleitung für / node -> Startseite hinzu

Bitte beachten Sie, dass die Weiterleitung sowohl / node als auch / node / zur Startseite weiterleitet.

und ein nützlicher Artikel zum Lesen: https://www.drupalaid.com/blog/3-things-you-should-hide

Kasım Burak Özdemir
quelle
Es ist eine Ansicht in D8, also drush @example.com views-disable frontpagewird es ausgeschaltet. Bekomme trotzdem einen 404, bis die anderen Dinge erledigt sind.
Colan
0

Erstellen Sie einen Knoten, gehen Sie zu Standortkonfiguration -> Standortinformationen und legen Sie die Homepage auf den Pfad des Knotens fest. Wenn es also Ihr erster Knoten ist, wäre es Knoten / 1.

Bearbeiten: Standardmäßig wird diese Seite beim Erstellen eines Knotens ausgeblendet, wenn Sie die Option "Zur Startseite hochstufen" aktivieren. Der Schritt mit den Site-Informationen macht diesen Knoten zu Ihrer eigentlichen Startseite.

Mike L.
quelle
1
Richtig, aber /nodeimmer noch erreichbar, wird es standardmäßig nicht angezeigt
Laxman13
Ich habe falsch verstanden, wonach er gefragt hat. Was ist mit dem Pfadumleitungsmodul http://drupal.org/project/path_redirect ?
Mike L.
1
Leider können Sie mit der Pfadumleitung nicht von vorhandenen Pfaden umleiten. Es wird geprüft, ob der Pfad, von dem Sie umleiten möchten, ein gültiger Pfad ist. In diesem Fall wird die Umleitung nicht erstellt und eine Warnung angezeigt.
Laxman13
Cool. Ich habe es eine Weile nicht mehr benutzt, war also nicht positiv. Vielen Dank!
Mike L.
0

Sie können das Modul Regeln verwenden , um die URL vor dem Anzeigen einer Seite zu überprüfen und Benutzer auf eine andere Seite umzuleiten, wenn Sie möchten.

  • Regel mit Ereignis hinzufügen : Inhalt wird angezeigt
  • Bedingung hinzufügen : Führen Sie benutzerdefinierten PHP-Code aus und überprüfen Sie den Pfad
  • Aktion hinzufügen : Seite umleiten und den Pfad auswählen, zu dem umgeleitet werden soll
Laxman13
quelle
Dies führt nicht nur zu erheblichen Leistungseinbußen, sondern ist auch als sehr unsicher anzusehen. "Benutzerdefiniertes PHP ausführen" sollte niemals vorgeschlagen werden, es sei denn, alle Nebenwirkungen und Nachteile sind sehr gut bekannt. -1 dafür.
Berkes
@berkes Ich würde annehmen, es liegt daran, dass Rules bei jedem Seitenaufruf eine Überprüfung durchführt und damit die Website verlangsamt? Warum ist "Execute custom php" immer verpönt? Natürlich nicht gut für Endbenutzer, aber gibt es auch Nachteile für Entwickler? Es tut mir leid, dass ich so lange gearbeitet habe, um mit Drupal das Beste aus mir herauszuholen und die "Ins und Outs" zu lernen. (Könnte bei Bedarf den zweiten Teil als eigene Frage hinzufügen)
Laxman13
Bitte überlegen Sie sich ein neues F "Was sind die Nachteile der Verwendung von" benutzerdefiniertem "PHP" in einigen Beispielbereichen (Blöcke, Ansichten, Argumente, PHP-Filter usw.), in denen dies diskutiert werden kann?
Berkes
0

Beliebte Frage von vor einigen Jahren, mit einigen interessanten Antworten bereits. Aber raten Sie mal: "Heutzutage gibt es ein Modul dafür ... eigentlich sogar zwei!" (in keiner der vorherigen Antworten erwähnt).

Lesen Sie weiter für weitere Details ... (Zitate stammen von ihren Projektseiten) ...

Node Page Admin (entweder D6 oder D7):

Dieses Modul fügt eine Anzeige mit Verwaltungseinstellungen für den Zugriff auf Knoten- Seiten hinzu. Sobald es aktiviert ist, gibt es drei mögliche Konfigurationen:

  • Core - Der Drupal-Core behandelt den Zugriff auf Knotenseiten wie gewohnt: Alle Benutzer mit der Berechtigung "Zugriff auf Inhalte"
  • Deaktiviert - Niemand kann auf / node zugreifen. Es wird "Seite nicht gefunden" (404) zurückgegeben.
  • Mit Erlaubnis - Der Zugriff wird mit einer neuen Erlaubnis behandelt: 'Zugangsknotenseite'

Node Page Disable (entweder D6 oder D7, jedoch nur RC2-Versionen):

Ermöglicht den einfachen Zugriff auf die Benutzeroberfläche und das Deaktivieren des Pfads / Knotens, wenn er nicht verwendet wird. Dies wurde durch einen Sicherheitsaspekt im Production Check Module angeregt .

Pierre.Vriens
quelle
-1

Am besten verstecken Sie die Knoten vor der Funktion template_preprocess_page

function template_preprocess_page(&$variables) {
    if ($variables['is_front'] == 1) {
        if (isset($variables['page']['content']['system_main'])) {
            unset($variables['page']['content']['system_main']);
        }
    }
}
Serg Kushch
quelle