Whilst working onwe've discovered that the 8.0.x routing system is case sensitive.
In drupal 7
/NODE would respond with the same page. In Drupal 8
/NODE will get a 404.
In addition path and alias should be consistent.
for example create content with path node/1 and set path alias as /path/alias
@webchick, @alexpott and @pwolanin did a quick survey of several big websites that also use dynamically-generated pages, both PHP and not, for example:
* WordPress (25% of the web): http://ma.tt/2015/05/wearable-gadgets/ vs. http://ma.tt/2015/05/wearable-Gadgets/ - case insensitive.
* Microsoft (ASP.NET): http://www.microsoft.com/en-us/default.aspx vs. http://www.microsoft.com/en-us/DeFault.aspx - case insensitive.
* Wikipedia (#7 website in the world): http://en.wikipedia.org/wiki/Main_Page vs. http://en.wikipedia.org/wiki/main_page - case insensitive.
Mind you, lots of other ones are not: Facebook, Google, etc. but they also tend to write their own stuff vs. use a generated dynamic system.
Additionally, no matter what we do, GOOGLE.COM and google.com both take you to the same place in your browser. So the expectation from non-technical users is likely to be that URLs are case insensitive; it's very difficult to explain that "if it comes after the slash then case matters, else..."
And finally, the Drupal <= 7 case-insensitive behavior is not hurting anyone (unlike the ability to put infinite /something/made/up/here paths), and breaking this behavior has a lot of ripple effects. For example, sites having to put manual redirects in, sites having to contact 3rd party websites/customers/etc. and ask them to change links, etc. Lots of disruption for not a lot of gain.
we agreed to fix this by keeping most of the existing behavior from Drupal 7.
/Node/1 - not 404. Same as /node/1
Drupal 8 should handling incoming paths consistently, and independent of the database back-end.
The patch stores the pattern outline as lower-case in the database and changes the query to lower-case the incoming path.
However, the route path is left untouched (and will render as entered by the developer or in the UI), so we also modify the compiled route regex to be case-insensitive.
Split aliases into a sub issue:
User interface changes
Data model changes
Beta phase evaluation
|Issue category||Bug because links in D6/D7 sites can break during an upgrade to D8.|
|Issue priority||Major because previously working links can break during a D8 upgrade. Not critical because:
See #23 for more details.
|Disruption||Disruptive for sites running on beta versions that added case-sensitive aliases in Drupal 6-7 or in Drupal 8.|