21 Nov 2006
I would like to introduce you to the most interesting feature of the upcoming SWFAddress 1.0. It enables generation of real links that expose the appropriate content to search engines. The magic happens with some interesting URL rewriting and some trivial serverside code. Here is an example how it works for a website located at http://www.domain.com that contains a portfolio section:
SWFAddress uses http://www.domain.com/#/portfolio/. The URL that can get indexed is http://www.domain.com/portfolio/ and therefore it should exist as a link in the HTML code of the page. When someone visits the indexed address the rewriting functionality makes a redirect to the URL that SWFAddress expects. Everything happens transparently for the end used and further navigation through the website correctly changes the Address bar value. The situation is different when the same link is followed by a search engine bot. In this case the address is just rewritten without any redirection to http://www.domain.com/?swfaddress=/portfolio/. The page that handles all this should use a serverside technology in order to generate the appropriate content depending on the "swfaddress" parameter value.
Requests containing GET parameters like http://www.domain.com/#/portfolio/?desc=true&year=2001 are handled similarly. The search engines will index http://www.domain.com/portfolio/?desc=true&year=2001 and the script will expect http://www.domain.com/?swfaddress=/portfolio/&desc=true&year=2001.
The result is a fully indexed Flash website with deep linking support. To see it in action you can try on of the following search queries:
While this approach improves the usability of Flash content over the web, it also requires an additional effort. This means some manual work for static websites and some smart code for dynamic ones. The best case will be a Flash CMS that automates the whole process.
I haven't seen something similar created for Ajax heavy websites although a part of it is documented in the Unique URLs pattern. It will be great for both Flash and Ajax if a technique like this gets adopted and improved over the time.
SWFAddress 1.0 ships tomorrow, stay tuned.