I've just run into a strange problem. I made a Drupal site that serves its content on three domains in three different languages ('domain name only', 'current language and language neutral'). Primary and Secondary menus and some other domain-related info are managed trough Virtual Sites. I've tested this extensively on my local host and on a test site at http://sandbox.chakana.nl, where everything works as it should.

Now the problem: aliased nodes give a 'Page not found' error on the two domains that are not in the default language. E.g. http://chakana.org/about is not found, whereas http://chakana.org/node/96 is. If I change the default language from Dutch to English, http://chakana.org/about works fine, but then the Dutch translation http://chakana.nl/over-chakana gives a 404.

I use Pathauto, but the same problem exists for nodes that I aliased manually. Everything works fine on my local test server and on http://sandbox2.chakana.nl/about for example. So the problem seems to be with the language recognition, but the strange thing is that the front pages are served in their respective languages, with the right menus (each language has it's own Primary and Secondary Menu), so on first sight the language recognition also seems to work.

I'm not sure where exactly the problem lies, but it i18n seems to be the place where people might know. Any clues?

And oh, the only differences between the sandbox and the main site are some core and module upgrades, but the updated sites works fine on the local host, so I don't expect the problem to be in any upgrade.

Comments

ar-jan’s picture

I now tried the same version of the site (code and database) on the sandbox site as well. Only thing I changed was the domains for language recognition. On the sandbox, everything works.

The only difference between them then, is that the sandbox sites are subdomains, with 2 and 3 pointing to 1 with a symlink.
The three tld's are with the same provider, but function with a server alias. Why would this lead to aliases giving 404's?

I don't get why the aliased paths in themselves work on any of the three TLD's, but only for the language that is set to default.

ar-jan’s picture

Status: Active » Fixed

#180345: set default locale in settings.php contained the solution: setting the default language in settings.php for each domain.

Seems however that somewhere in i18n or in between i18n and path aliases something's not working right. It doesn't make sense for everything to work (including the language negotiation), but not the path aliases.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for two weeks with no activity.