web-dev-qa-db-fra.com

Comment masquer la page / le nœud par défaut?

Drupal est livré avec une page (qui est la page d'accueil par défaut) qui est affectée au chemin node.

Comment éviter que les utilisateurs ne l'atteignent et les rediriger vers la page d'accueil réelle du site?

22
wiifm

Il n'y a pas de moyen facile de masquer cette page. Si vous ne l'utilisez pas, vous pouvez implémenter hook_menu_alter () , et soit le supprimer complètement, soit définir son rappel d'accès sur FALSE.

17
Berdir

Créez un alias de chemin qui redirige depuis/node vers la page que vous souhaitez utiliser comme première page.

8
kiamlaluno

Je préfère modifier le rappel de page de/node pour qu'il affiche une erreur 404 Page.
Cela montre toujours votre page 404 personnalisée lors de l'accès à/node.

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

ou ajoutez ceci à settings.php (URL entrante)

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

J'ai utilisé le module Redirect : je viens d'ajouter une nouvelle redirection 301 de node vers <front>.

2
ACD

Vous pouvez créer une page mappée sur/node qui n'est pas publiée. Ainsi, les utilisateurs qui appellent ce chemin auront une page d'accès interdit

1
pitop

Semblable à la réponse de berdirs, j'ai le code suivant inclus dans un module qui fait partie d'une distribution personnalisée à partir de laquelle nous construisons:

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

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

De cette façon, je peux garder le chemin du "nœud" comme première page et utiliser le contexte pour positionner les blocs pour créer la première page requise.

1
Decipher

Vous pouvez créer une nouvelle page avec l'URL du nœud et les gens peuvent voir un message les redirigeant vers la page d'accueil ou choisir une catégorie de quelque chose.

1
Mario

La solution la plus simple pour moi était de créer une page que je voulais être la page d'accueil et de définir l'URL sur/node. Ensuite, sous/admin/config/system/site-information, définissez la page d'accueil par défaut sur/node. Vous ne voyez jamais "/ node" dans l'URL à moins que quelqu'un ne l'ait réellement saisi. C'est rapide, facile et propre, à condition que vous souhaitiez définir l'URL de votre page d'accueil sur/node.

1
Jack McKenzie

J'ai essayé plusieurs choses. Ensuite, pour Drupal 7 et 8, j'ai trouvé que c'était plus facile, sans écrire de code:

téléchargez et activez les modules node_page_disable, globalredirect et redirect.

(Remarque: le module node_page_disable redirige/node vers la page d'erreur 404 introuvable.)

puis ajoutez une redirection pour/node -> front page

Veuillez noter que la redirection redirige à la fois/node et/node/vers la page d'accueil.

et un article utile à lire: https://www.drupalaid.com/blog/3-things-you-should-hide

1

Question populaire d'il y a quelques années, avec déjà quelques réponses intéressantes. Cependant, devinez quoi: "Ces jours-ci, il y a un module pour cela ... en fait même deux!" (non mentionné dans aucune des réponses précédentes).

Lisez la suite pour plus de détails ... (les citations proviennent de leurs pages de projet) ...

Administrateur de la page du nœud (soit D6 ou D7):

Ce module ajoute un panneau de paramètres d'administration pour gérer /node accès à la page. Une fois activé, il existe trois configurations possibles:

  • Core - Drupal core gèrera l'accès à la page du nœud comme d'habitude: tous les utilisateurs avec la permission 'access content'
  • Désactivé - Personne ne pourra accéder à/node. Il renverra "Page non trouvée" (404).
  • Par autorisation - L'accès sera géré par une nouvelle autorisation: "accéder à la page du nœud"

Désactivation de la page du nœud (soit D6 ou D7, mais uniquement pour les versions rc2):

Permet un accès facile à l'interface utilisateur et la désactivation du chemin /node lorsqu'il n'est pas utilisé. Cela a été inspiré par une considération de sécurité dans le Production Check Module .

0
Pierre.Vriens

Créez un nœud, puis accédez à la configuration du site -> informations sur le site et définissez la page d'accueil sur le chemin du nœud. Donc, si c'est votre premier nœud, ce serait le nœud/1.

Modifier: Par défaut, juste en créant un nœud, cette page disparaîtra si vous cochez 'promouvoir en première page'. L'étape d'informations sur le site fera de ce nœud votre première page réelle.

0
Mike L.

Vous pouvez utiliser le module Rules pour vérifier l'url avant d'afficher une page et rediriger les utilisateurs vers une autre page si vous le souhaitez.

  • Ajouter une règle avec un événement: Le contenu sera affiché
  • Ajouter une condition: Exécuter personnalisé PHP et vérifier le chemin
  • Ajouter une action: Redirection de page et choisissez le chemin vers lequel vous souhaitez rediriger
0
Laxman13