En utilisant le module Rules, vous pouvez implémenter une règle qui ressemble à ceci:
{ "rules_disallow_accesss_to_selected_urls" : {
"LABEL" : "Disallow access to selected URLs",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"ON" : { "init" : [] },
"IF" : [
{ "text_matches" : {
"text" : [ "site:current-page:url" ],
"match" : "content\/video-1",
"operation" : "regex"
}
}
],
"DO" : [
{ "drupal_message" : {
"message" : "Sorry, access to URLs like [site:current-page:url] is not allowed ...",
"type" : "error"
}
},
{ "redirect" : { "url" : "no_access" } }
]
}
}
Toute personne essayant d'accéder au chemin relatif content/video-1
sera redirigée vers une page avec chemin no_access
et un message d'erreur associé s'affichera (adaptez ce chemin pour l'adapter à vos propres conventions et passez en revue le message à afficher).
La règle ci-dessus restreint uniquement l'accès au chemin relatif content/video-1
(comme dans votre question). Si vous souhaitez étendre la règle à des URL similaires, passez content\/video-1
à quelque chose comme content\/video-\\d+$
, ou à toute variante qui correspond à la convention de dénomination de vos chemins.
La règle ci-dessus ne prend pas (encore) en compte pour n'appliquer l'action de règles qu'aux utilisateurs ayant des rôles sélectionnés. Mais pour quelqu'un qui connaît un peu le module Rules, c'est une simple "condition" à ajouter ... par exemple: ignorer l'action des règles pour les utilisateurs avec un rôle comme éditeur, administrateur, etc. Ce que vous pouvez faire en ajoutant une Rules Condition comme "l'utilisateur n'a PAS d'administrateur de rôle (et / ou d'éditeur)". De cette façon, ces types d'utilisateurs spéciaux peuvent toujours voir ces nœuds de toute façon (sans une telle condition supplémentaire, ils ne peuvent également plus afficher ces nœuds ...).
Pour expérimenter cette règle dans votre propre site, copiez simplement le code Rules complet ci-dessus et collez-le dans une nouvelle règle dans votre propre site, créée via la fonction "Importer" (disponible si l'interface utilisateur Rules est activée). Ensuite, modifiez / affinez davantage pour l'adapter à votre propre environnement (par exemple, le message "Désolé, ..." sera affiché).
Raffinement supplémentaire
Dans l'une des autres réponses, vous avez ajouté un commentaire qui comprend ceci:
... Je voulais rediriger vers la page d'accueil dans certains cas, 404 dans d'autres, etc., donc j'avais un meilleur contrôle ...
Si c'est ce que vous souhaitez également faire, vous pouvez affiner davantage l'action de règles ci-dessus en ajoutant également le module Règles conditionnelles . Avec cela, pour chacun de vos "certains cas", vous pouvez ensuite spécifier l'URL appropriée vers laquelle rediriger. Reportez-vous à ma réponse à " Comment définir les valeurs de certains champs en fonction de la valeur d'une zone de liste? " Pour une illustration de la façon d'utiliser ce module dans une action de règles.