SWFAddress 雖然已經給予了 Flex/Flash 網站一部分 SEO 的優勢,但是它還是有局限性。

SWFAddress 的 deepLinking,都是帶有 # 號的。假設 A 和 B 都登陸 richmediaplus.com,那么,他們的 deepLinking 分別為 richmediaplus.com/index.htm#/a/ 和richmediaplus.com/index.htm#/b/ ,這樣的URL,特別是#的存在,無論對用戶還是網站的 SEO 來說,都不是很友好。DeepLinking 最理想的方式應該是 a.richmediaplus.com 或者 richmediaplus.com/b 這樣的URL方式。

結合泛域名解析,能解決我們所碰到的尷尬問題。泛域名解析指的是通過利用通配符 * (星號) 以實現所有的次級域名指向同一個地址。以上面的例子來說,我們可以利用泛域名解析將 a.richmediaplus.com 和 b.richmediaplus.com 同時指向 all.richmediaplus.com ,在實際的服務器目錄當中,大部分的內容只存在 all.richmediaplus.com 的目錄,URLs 地址是真實存在,但是服務器中并沒有真實的目錄。all.richmediaplus.com 中的文件會 parse 當前的 Virtual Unique URLs ,結合數據訪問 Server 端 告知是 a 用戶 還是 b 用戶,讀取限定的資料出來反饋給 Flex/Flash 進行內容的顯示,因此 a.richmediaplus.com 和 b.richmediaplus.com 讀取的文件是一樣的只是顯示的內容會根據用戶有所不同。

既然有了泛域名解析,那么 SWFAddress 是否就可以不用了呢?答案是否定的。
假設 A 有 apple,沒有 banana ,B 有 banana 沒有 apple。那么需要存在 a.richmediaplus.com/apple 和 b.richmediaplus.com/banana 這樣的 URLs, 而 a.richmediaplus.com/banana 和 b.richmediaplus.com/apple 是不允許存在的,結合上述的泛域名解析,它們指向的是同一地址 all.richmediaplus.com,因此也同樣遇到了尷尬的問題。也正是因為 swf 的格式再結合自身對搜索引擎不友好的關系,注定還是需要 SWFAddress 這樣的工具輔助。結合 SWFAddress 的使用,上述的例子就可以變成了 a.richmediaplus.com/index.htm/#/apple/ b.richmediaplus.com/index.htm/#/banana/ 。這樣的 URL 是對搜索引擎友好的,搜索引擎可以很簡單的分析出 a 家有 apple, b 家有 banana。

可以看看下面的流程圖。
Virtual-Unique-URLs

泛域名解析 + SWFAddress ,我把它稱為 Virtual Unique URLs

特別注意

在默認情況下,Developer 一般會把 main.swf 直接嵌入在 all.richmediaplus.com 下的 index.htm 頁面中, a/b/c.richmediaplus.com 指向的都是 all.richmediaplus.com ,那么在用戶在跳轉 a/b/c 的時候,他們loading的是同一個 main.swf,可是因為泛域名解析的關系,實際下載的 main.swf 分別要下3次,即分別為 a.richmdiaplus.com/main.swf b.richmdiaplus.com/main.swf c.richmdiaplus.com/main.swf,所以在編寫 index.htm 的時候,記得要把 loading 的 swf 改寫指向為同一URL絕對地址。如 value = “main.swf” 改寫為 value = “http://all.richmediaplus.com/main.swf” ,這樣無論用戶跳轉到哪個地址,swf 都指向 http://all.richmediaplus.com/main.swf ,因此用戶只需 loading swf 一次就夠了。