Human-readable URLs

My CMS is pretty good I think. It is easily usable, can feature match most software that costs 5-6 times as much, and is quick to deploy. All things a good CMS should be.

However, there are a couple of areas where it is really hurting. The most important of which I feel is the fact that the URLs it produces are not terrible human-readable. Go visit COPE‘s website, and navigate around a bit. Watch the URLs. They’re pretty nutty, eh? In fact, they have almost nothing to do with the content on the screen, instead filled with arcane code that only developers can understand. Which is not so good.

Having seen a number of CMS’ in action, this seems to be a common problem with them, and indeed, virtually any site with dynamically generated content. They’re all over the web these days, these unreadable URLs, and it’s becoming a real problem. To see the news of COPE, I can’t tell someone to go to www.cope.bc.ca/news, I instead would have to say www.cope.bc.ca/index.cfm/fuseaction/news.main/index.html. Which is far less usable.

So I’ve started researching ways around this. Part of the problem is that I have been developing using the fusebox methodology, which is where the fuseaction/news.main bit comes in (which I think is still better than index.cfm?fuseaction=news.main, but whatever).

I’ve been playing a bit with some of the new features in CFMX, primarily with it’s XML support, which is fantastic (and fantastically easy to use). I’ve got a very early model of a sytem that creates an XML middle-layer from my content. This can then be read as HTML, as PDF, as Word Format, or whatever, depending on what I call. I’m hoping that this will lead to something much easier to read, URL-string-wise. One solution, is that the CMS actually generates a html page everytime the content of an object changes. Another is to make use of 404-scripting. Both of these adds some different overhead, so will take some investigation. But I’m determined that the next version of my CMS will output human-readable URLs.

If anyone’s doing work in this area, I’d love to hear some of your thoughts, either here or through email (link at the top of the page here), and of course, I’ll share mine in return).