If you have two URL aliases using the same alias string, one being language neutral and the other being assigned to the currently active language, the alias for the current language overrides the language neutral one.

This in itself is not much of a problem, but the url() function does not check for this type of behaviour which means that two different drupal paths can result in the same url. For me currently url('node/120') and url('node/121') in a german environment return the same value. This of course means that clicking on the 'view' tab for a node can lead it to a completely different node.

You could fix this by checking for a 'double-active' alias string in the url() function, however I would propose that language specific and language neutral aliases with the same alias string block each other, meaning:

  • It would not be possible to create a language specific alias using an alias string that already exists as language neutral alias.
  • It would not be possible to create a language neutral alias using an alias string that already exists as language specific alias.

This should ensure that any alias string can only occur once within any environment no matter what the language settings are.

Comments

Version: 7.14 » 7.x-dev

Core issues are now filed against the dev versions where changes will be made. Document the specific release you are using in your issue comment. More information about choosing a version.