7

I have a site that uses the Taxonomy module to categorize content. The vocabularies and terms are used as arguments and filters in various Views. I do not want the Taxonomy module to generate its own pages at URLs like "/taxonomy/term/1,2" . Is there an easy way to disable this functionality?

4

Just install the Views module and enable the Taxonomy Term View. This will give the option to set the access permissions to Authenticated or Administer or any role or permission, preventing the page from being viewed by the public or robots.

PS: if you are not using Views, you have not yet discovered Drupal.

  • Once you enable the Taxonomy Term view, where do you set the access permissions? – User Nov 21 '12 at 16:40
  • Nevermind, I see it on the edit view page under "Page Settings" – User Nov 21 '12 at 16:46
  • See also : drupal.stackexchange.com/questions/5404/… – Benj Apr 19 '15 at 9:24
3

It's provided by the taxonomy module, so you can't disable it.

What you can do, is create a small module who override the path and redirect them to a drupal_not_found(), 15 lines and it's done.

Maybe there are some other ideas, I'm also curious to read them :)

  • I was hoping somebody had already done that for me! However, I wonder if it might not be faster to use mod_rewrite rather than a module. The site in question deals out 20K+ page views an hour most of the day, so I'm always looking for the fastest and least resource intensive solution possible. – Codeblind May 6 '11 at 0:25
1

This is a great use of the panels module. I do it on node /users and taxonomy terms i dont want to have a public face.

  • Enable panels/ctools page manager
  • Enable the "term template override
  • Create a variant (using selection rules to limit to a vocabulary or term).
  • When asked the type of panel variant specify http response code and pick from page not found or redirect.

How it works: panels takes over the renderig task from the taxonomy module and uses your selection criteria to serve up a variant of panels that simply emits a 403/301 error code. You can perform some pretty tricky redirects and selection magic with the use of contexts and selection rules. You should be using th emodules anyway because everything you have installed relies on ctools and panels is just the ctools page manager ui. ;)

0

This is how I did it in my own module called super_security:

function super_security_init(){
  GLOBAL $user;
  if (!isset($user->roles[1])){// I want the admin to be able to see everything
    if (arg(0)=="taxonomy"){
      drupal_goto("somewhere_im_allowed_to_be");
      // OR drupal_not_found();
    }   
  } 
}
0

As you've discovered, the Taxonomy module's behaviour is to create a page for each term, on which teasers to all nodes tagged with that term are displayed as teasers.

To suppress the creation of these pages on a per-vocabulary basis use a module called Disable Term Node Listings.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.