On a recent thread on the Wrox p2p forums, a user posted a link to a 4guysfromrolla/MSDN article regarding URL rewriting:
The basic idea being to convert complicated URLS like:
to something more human friendly such as:
I started reading the article but stopped shortly into it because I started disagreeing with much of what they were saying.
They give the impression that web users spend a lot of time typing in complete URLs to get to where they wish to go. That makes no sense to me. When was the last time you went to amazon.com and typed in the full URL to a product or "department" you wanted to see? I can't say I ever had. Part of this might be the fact that their URLs are very complicated and make no sense (which of course is the whole point to the article referrenced).
A web user should not need to type in a URL other than the root site address. In the case of amazon.com, when you want to get to a product, you enter a search for it! While I like the coolness factor of the whole URL rewriting idea, I think it's a needless addition. Focus on building a usable search mechanism for your web site/application and you'll provide a much better way for users to access information.
Another point they make in the article address making your site URLs "hackable". To paraphrase: "The user should be able to manipulate the URL and have it return something good."
My alternative? Build a logical and intuitive navigation system. Perhaps time could be better spent learning some site usability rather than building a technical solution to support "URL hacking" that won't necessarily be all that logical to a user anyway.
When I think about designing something for the web, I think about how I would direct my dad to go to a page on the site over the phone. (My dad's a bright guy, computers just aren't his strength.) Which scenario would you find easier:
Me: "Hey dad."
Dad: "Hey kid, how do I get to that cheese grader page?"
Me: "Type into your browser address bar..."
Dad: "What's that?"
Me: "(*sigh*) That's the white box at the top where you normally type in 'google.com'."
Dad: "Oh right, ok..."
Me: "Type in mysite dot com slash products slash kitchen slash cheese grader"
Dad: "Is there a space in cheese grader?"
Dad: "Ok, now what."
Me: "(*sigh*) Hit enter or click the go button."
Dad: "Hmm... didn't work."
Me: "Ok, read back what you typed."
Dad: "myside dot com slash product slash... oh wait, I spelled kitchen wrong."
......and so on.
Me: "Go to mysite dot com"
Dad: "Ok, I'm there now."
Me: "Type in cheese grader in the search box and click search. You should get back links to all the cheese grader products."
Dad: "Ok... Ah there they are. Thanks."
Expecting users to use the URL to navigate/search your site requires them to have some understanding about how URLs work. The article says that they shouldn't be expected to understand how query strings are used to drive the pages. If you can't expect them to understand that, then how can or why should we expect them to understand any of it? More importantly, as I pointed out earlier, eliminate the need all together and build a site with a good search and good navigation and your users can get to where they want with a minimum of key strokes or mouse clicks.