I am currently developing a Drupal 8 site that will consist of one only central content type with a minimal menu structure. The user is supposed to navigate the site only by using a search/filter form (similar to a search engine) and I would like to disallow all methods for locating content other than using the search form.
The problem is: All content in Drupal is normally accessible by using <site>/node/<somenumber>
, which makes it easy to locate all content by simply counting upwards (I think, this process is called node enumeration). I know, I can use the Pathauto
module to generate a pattern for URL aliases (say, a random hash). Unfortunately, that won't prevent the original URLs from being accessible: When entered, they will simply be forwarded to the generated aliases.
So, my question is: Is there a way to prevent this node enumeration from being possible? Is it possible to have the node available only under the generated aliases and not forward the original URLs?
All help would be much appreciated.
/node/XXX
you first disallow anoymous access to/node/XXX
and then use Node Authlink module to allow anonymous access to nodes with something like/node/XXX?authkey=secret_hash_for_this_node