1

Content on our site exists in several languages. The default language is 'en'. Prefixes are shown in URLs, such as http://example.com/en/my/path or http://example.com/nl/my/path.

However, pages like the home page, and various views and custom pages, should not be localized -- they should show on the default language URLs, even if they list nodes in other languages.

The problem we face is that after somebody visits a page in non-default language, e.g. http://example.com/nl/my/path and they then go to the home page, the home page is on http://example.com/nl. This means that our the same non-node pages exist in several copies, each with only a different URL language prefix. Confusing for search engines, confusing for users, and heavy for the server (multiple page caching).

In other words, the home page and other non-nodes should always have the default language prefix, independently from the language of the previously visited page. Can this be achieved elegantly (without having to write custom .htaccess redirects)?

1

Probably the easiest way that I know is to turn off "Determine the language from the URL (Path prefix or domain)." on the languages page at "admin/config/regional/language/configure". This way there is only 1 url for all content.

I do not know (of an elegant way) to have language prefix for nodes but not other pages.

  • That's an extreme solution which I would like to avoid. One problem with that is that all nodes on non-default languages lose their Pathauto aliases, which is a great pain. See drupal.org/node/1234924 – Vacilando Nov 24 '14 at 23:28
  • Incidentally, the solution to my point about the lost aliases for nodes with non-default languages, is at drupal.stackexchange.com/a/138109/196 – Vacilando Nov 26 '14 at 19:49

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.