J'ai constaté que j'avais parfois un nœud qui contenait simplement du contenu qui serait affiché ailleurs, mais ne devrait pas être visualisé directement. Autrement dit, personne ne devrait jamais aller au noeud / 1234, mais le contenu du noeud 1234 devrait être affiché ailleurs. Par exemple, je crée une page à propos avec un contenu à onglets à l'aide de vues. Il y a donc des pages "À propos de moi", "À propos de nous" et "À leur sujet". Tous ces éléments sont affichés sur une seule page avec des onglets utilisant Vues. Je ne souhaite donc pas que les utilisateurs accèdent directement au nœud "À propos de nous" car ils ne verraient pas les onglets des autres pages. En même temps, je ne veux pas que Google donne aux gens un lien direct vers ce nœud, je veux limiter l'accès afin que les utilisateurs ne puissent y accéder que via la vue (c'est-à-dire l'onglet).
Je dois donc limiter l'accès au nœud, le supprimer des résultats de la recherche Drupal et m'assurer que Google ne l'utilise pas. Aucune suggestion?
Réponses:
Cela me semble être un bon cas d’utilisation pour le module Panneaux, car vous pouvez créer des panneaux qui remplaceront les pages de nœud et définir le contexte du panneau de manière à garantir aux utilisateurs de voir la page que vous voulez, ainsi que règles d'accès pour les pages de panneaux si vous en avez besoin. Pour plus de détails, voir ce post sur do
la source
Le module Rabbit Hole fournit cette fonctionnalité.
la source
Une option peut être de ne jamais publier le nœud mais de laisser la page consommateur ignorer son statut de publication. Ainsi, dans votre exemple, votre vue "À propos de" peut simplement ignorer le statut de publication de vos nœuds "À propos de-xxx". Étant donné que les nœuds ne sont pas publiés, les utilisateurs non autorisés ne peuvent y accéder et ne doivent pas être indexés par le moteur de recherche.
Une autre solution consiste à utiliser une implémentation
hook_nodeapi('view')
/hook_node_view()
pour émettre un messagedrupal_goto()
oudrupal_access_denied()
lorsque la page du nœud est visitée par un utilisateur non autorisé. Sachez quehook_nodeapi()
/hook_node_view()
sont utilisés dans de nombreux cas et pas seulement lors de la visualisation d'une page de nœud.hook_menu_alter()
peut également être utilisé pour modifier le rappel d’accès des pages de nœud afin de refuser l’accès aux nœuds cachés .Le mieux est probablement de ne pas baser le filtrage sur l'ID de nœud codé en dur, mais d'utiliser un champ personnalisé sur le nœud (à l'aide de l'API CCK / Field ou une table personnalisée) ou une liste de nœuds masqués stockés dans une variable .
la source
Pour Drupal 7, Rabbit Hole fournit cette fonctionnalité.
Comment :
Sous- module Activer les nœuds de trous de lapin Ensuite, nous aurons une section de configuration associée à chaque formulaire dans Drupal CODE
la source
Résolu J'ai d'abord essayé de répondre à Pierre Buyle, mais si vous annulez la publication d'un nœud, l'accès ne sera plus correct et ces nœuds deviennent inutiles. Dans mon cas, j'ai des nœuds parents et enfants, seuls les nœuds enfants (à des fins d'administration) sont ceux qui doivent être masqués et NON indexés par les robots d'exploration. Ce que je l'ai fait avec le gestionnaire de pages a créé une redirection d'URL (masquant ces nœuds à tous les utilisateurs sauf l'administrateur) avec une réponse http conforme à ce tutoriel par http://www.wunderkraut.com/ 1 et les nœuds sans index par les robots d'exploration sont gérés. par le module no-index Node . Cela fonctionnera même si vous n’avez pas de relation de noeud paret-enfant. Lien vers le tutoriel:
la source
Dans Drupal 7, il devrait également être possible d'utiliser hook_node_access () . Il s'agit d'un hook normal dans D7 pouvant être mis en œuvre par tous les modules pour tous les types de nœuds. Ensuite, vous pouvez refuser l'accès si l'utilisateur tente d'afficher le nœud sur son propre nœud / nid.
Vous devrez probablement également implémenter hook_query_node_access_alter () et y ajouter une vérification pour masquer le nœud dans les résultats de la recherche. Cela pourrait même suffire à lui seul et vous n'avez pas besoin de hook_node_access (). Et cela pourrait même fonctionner dans D6 car vous pouvez également y modifier la requête, mais c'est beaucoup plus facile dans D7 en raison du constructeur de requêtes.
la source
Définissez simplement ces nœuds comme "non publiés", puis, dans la vue, ajoutez le filtre "nœud publié: non".
Comme vous le remarquez, il est recommandé de créer un type de contenu personnalisé pour ces nœuds "fantômes" et d'indiquer à pathauto de leur donner des URL spécifiques (i use
/dev/null/[title-raw]
;): même si le nœud n'est pas publié, il aura son propre alias d'URL, Ainsi, dans votre exemple, si vous créez d'abord le nœud fantôme 'à propos de nous', puis la page d'affichage 'à propos de nous', l'URL de la seconde seraexample.com/about-us-0
parce que celle-ciexample.com/about-us
a été extraite de celle fantôme (toutefois, vous pouvez définir les chemins manuellement).la source
Vous pouvez utiliser n’importe quel type de système d’accès aux nœuds et utiliser view3. Dans ce cas, vous ne pouvez pas désactiver la réécriture SQL sur les paramètres de la requête. Vous pouvez donc désactiver le système d'accès aux noeuds dans cette vue.
la source
Vous pouvez le faire en utilisant les modules de règles.
+ Créer une nouvelle règle avec l'événement "Le contenu est visualisé".
+ Ajoutez quelques conditions, par exemple: L'utilisateur a le (s) rôle (s): anonymous, Path a l'URL alias: node / xyz (il s'agit du nœud que vous souhaitez limiter pour l'utilisateur anonyme). N'oubliez pas d'ajouter la condition "et" ou "ou" si nécessaire.
+ Créer une action pour rediriger vers une autre page ou faire autre chose. Ceci est l'exemple de code que j'ai exporté pour vous
la source
Je pense que le moyen le plus simple d'accomplir ce que vous voulez est d'utiliser le gestionnaire de pages (Ctools), c'est vraiment simple à utiliser, tout ce que vous avez à faire est de spécifier quel nœud rediriger où (dans ce cas, d'un nœud à un autre)
la source
Le module d' accès au contenu répondra parfaitement à vos besoins.
Il possède également une bonne documentation pour vous aider à démarrer.
la source
Si vos noeuds « contenu inclus » doivent rester inaccessibles, puis envisager de bloquer / node / * sur le serveur Web « location = / node / * » niveau . Par défaut, refuser l'accès à tous les nœuds. Par défaut, autoriser l'accès aux noeuds ayant reçu un chemin auto-chemin tel que / pages.
(Le mot de passe .htaccess de base pour les sous-répertoires constitue également un moyen correct de bloquer l'indexation accidentelle des recherches par des robots d'exploration externes.)
Vous ne pouvez jamais garantir qu'un nœud ne deviendra pas accessible via un module contributif installé ultérieurement ou dont vous ne comprenez pas encore la totalité. (Résultats de la recherche, listes, vues par défaut, vue d'ensemble des catégories de taxonomie ...)
C'est à quoi servent les nœuds.
La confidentialité de votre "contenu inclus" est-elle importante pour vous? Si oui, alors ...
Tout ce qui a une URL sera éventuellement touché par Google.
Parce que les moteurs de recherche ne s'appuient pas uniquement sur des araignées de liens. Ils évaluent également les commentaires du navigateur, etc. Aucun module robot.txt, ni pathauto, globalredirect, rabbithole ne vous aidera à dormir en paix. Si le nœud est accessible, il sera indexé. Peut-être par votre propre navigateur / addons.
Reconsidérer si "le contenu à inclure" doit réellement être un nœud , si personne ne doit y accéder en tant que page ?
Si votre "contenu inclus" est stocké dans un mini-panneau / bloc / extrait / bean / ..., vous courez un risque beaucoup moins grand qu’il soit jamais répertorié, ou ne s'affiche jamais sous forme de page avec une URL automatique. Je ne sais pas encore. (pages d'aperçu de taxonomie, recherche, vues ...)
la source
Le module Vue de la page Limiter le noeud fait exactement ce que vous voulez.
De la description du module:
Avec ce module, vous pouvez limiter l'accès au
full
mode d'affichage du nœud , de sorte que vous ne pouvez pas accéder au nœud surnode/XXX
.la source