Usando el módulo Reglas puede implementar una regla similar a esta:
{ "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" } }
]
}
}
Cualquiera que intente acceder a la ruta relativa content/video-1
será redirigido a una página con ruta no_access
y se mostrará un mensaje de error relacionado (adapte esta ruta para que se ajuste a sus propias convenciones y revise el mensaje que se mostrará).
La regla anterior solo restringe el acceso a la ruta relativa content/video-1
(como en su pregunta). Si desea expandir la regla a URL similares, cambie content\/video-1
a algo como content\/video-\\d+$
, o cualquier variación que se ajuste a la convención de nomenclatura de sus rutas.
La regla anterior no tiene en cuenta (todavía) para aplicar solo la Acción de reglas solo para usuarios con roles seleccionados. Pero para cualquiera que esté un poco familiarizado con el módulo de Reglas, esa es una "Condición" directa para agregar ... por ejemplo: omitir la acción de reglas para usuarios con un rol como editor, administrador, etc. Lo que puede hacer al agregar una Reglas Condición como "el usuario NO tiene rol de administrador (y / o editor)". De esa manera, ese tipo de usuarios especiales aún pueden ver dichos nodos de todos modos (sin esa condición adicional, ya no pueden ver tales nodos más ...).
Para experimentar con esta regla en su propio sitio, simplemente copie todo el código de Reglas anterior y péguelo en una nueva Regla en su propio sitio, creada mediante la función "Importar" (disponible si la IU de Reglas está habilitada). Luego, edite / refine más para que se ajuste a su propio entorno (por ejemplo, se mostrará el mensaje "Lo siento, ...").
Refinamiento adicional
En una de las otras respuestas, agregó un comentario que incluye esto:
... Quería redirigir a la página de inicio en algunos casos, 404 en otros, etc., por lo que tenía un mejor control ...
Si eso es lo que también quiere hacer, puede refinar aún más la Acción de reglas anterior agregando también el módulo Reglas condicionales . Con eso, para cada uno de sus "algunos casos", puede especificar la URL apropiada para redirigir. Consulte mi respuesta a " ¿Cómo establecer los valores de algunos campos dependiendo del valor de un cuadro de lista? " Para ver una ilustración de cómo usar este módulo dentro de una Acción de reglas.