As highlighted in Feed aliases fail when max length of URL is the same as the size of the dest column issue.

Pathauto has a user-configurable URL length. Once the string-length in an aliased URL meets, or exceeds, the limit set by default in the dst column of the URL_Alias table, it gets cut short; thus leaving no "headroom" to accomodate the extra strings that may get appended by other system or module needs.

This means that any aliased URL's fail to generate resulting in 2 different paths.

A proposed draft abstract/solution is to provide a hook for modules to declare they need:

  • URL expansion
  • and to state the maximum length of strings needed to perform their functions

Pathauto can then programatically deal with what otherwise (with the current fix that is likely to be committed in the meantime), will be a burden that most users will find unfriendly, unmanageable, and confusing (even though it's still better to have, than not - see thread for details).

If you're a module-author and need (or currently use) URL expansion, it would help if you could drop its name below I'm personally only currently aware of the RSS module appending "/feed" to an URL... but what do I know!

This is primarily a usability issue as the current proposed fix (in the above thread) addresses the issue but by necessity, adds a layer of unreasonable reliance on the user, and his ability to understand the inner workings of Drupal.

I commend this motion to the house.

Comments

greggles’s picture

Version: 4.7.x-1.x-dev » 6.x-1.x-dev

Just reassigning the version since this is a 6 (or later) level thing.

Otherwise, well put and thanks for this.

greggles’s picture

Status: Active » Closed (won't fix)

Do you think this is still necessary?

It's been about a year since this was created and I don't remember hearing any more reports about the problem with people making the alias too long. I'm marking it won't fix because I just can't imagine that people are going to implement this hook in their modules. I think our current system (a reasonable warning based on searching through the code) is probably the best answer.