I have a Drupal site with an Event content type. This content type has an Event Categories taxonomy field on it, which, as you can guess, categorizes events.

When you navigate to the URL of a particular term of that taxonomy, you see a sort of calendar view of Events that are tagged with that term.

These term pages have aliases set up, so that instead of, for example, taxonomy/term/436, you can see the taxonomy term page by navigating to, say, /calendar/special-events.

This aliases are used to populate a menu which is used to navigate the calendar and see events only pertaining to one particular taxonomy term.

I am now tasked with integrating this sort of 'virtual calendar' (the menu and the taxonomy term pages) into an internal section of the site, which users have to log in to see.

We've created the internal section using the context module, using the URL (and user roles) as a condition of the context. For instance, the page /internal/calendar triggers the context to add blocks and other features that make up the internal part of the site (because the URL begins with internal).

However the problem arises when I want to use the calendar menu to place the calendar inside the internal site. The menu links are set to /calendar/special-events-- which, if an internal user navigated to, they would lose all the context that makes up the internal site. They will have navigated out of the internal site at that point.

I began to create a second menu, which was essentially the same as the Calendar menu, but all of the links began with /internal/calendar, /internal/calendar/special-events, etc. Sure, it's duplication, but it's more or less manageable.

The problem arose when I tried to add a second alias to the taxonomy term page. I went to admin/config/search/path and added an alias, so that the taxonomy term had two aliases:

/calendar/special-events             /taxonomy/term/213
/internal/calendar/special-events    /taxonomy/term/213

However, when I navigated to /internal/calendar/special-events, the URL in the browser became /calendar/special-events, which is the alias set on the taxonomy term page (the default, or primary, I guess you could call it). So because the URL doesn't contain /internal, then the context didn't trigger, and I effectively navigated out of the internal site.

My question: How can I set up a second alias for a taxonomy term page so that it doesn't get re-written to the default alias?

I also tried setting up a URL pattern at /admin/config/search/path/patterns:

Internal calendar   internal/calendar/[term:name]   Taxonomy term   

Vocabulary is event_categories

But with the pattern, when I navigate to internal/calendar/special-events, The URL remains as such, and the page renders the context items, but the content itself is rendered as a 404. So this does not appear to be a solution each.

  • ...did you flush the caches? Just asking.... >.> – Chris Happy Apr 25 '19 at 2:44
  • 1
    An alias doesn't change the URL in the browser, this happens only when you redirect to a new URL. Core doesn't redirect to aliases. Did you install the module Redirect? – 4k4 Apr 25 '19 at 8:22

Your Answer

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

Browse other questions tagged or ask your own question.