http://twitter.com/codinghorror
http://twitter.com/login用戶名的網址
他們兩個看起來像Twitter賬戶,但第二個不是。這是一個系統頁面。
Twitter如何知道logout
不是用戶名,它如何確保沒有用戶在系統頁面名稱下存在或將來可能存在的名稱下注冊?
http://twitter.com/codinghorror
http://twitter.com/login用戶名的網址
他們兩個看起來像Twitter賬戶,但第二個不是。這是一個系統頁面。
Twitter如何知道logout
不是用戶名,它如何確保沒有用戶在系統頁面名稱下存在或將來可能存在的名稱下注冊?
在大多數url路由框架中,您的路由規則都有一個優先順序。通常情況下,拳頭先來發布,這樣匹配的第一個url patten控制着url。
在這種情況下,可以說,微博不得不定義的路由
map.connect 'login', :controller => 'auth', :action => 'login'
map.connect ':username', :controller => 'user', :action => 'show'
第一條路線將匹配網址twitter.com/login,但是當你鍵入twitter.com/coddinghorror它會失敗匹配第一條路線,然後匹配第二條路線。
好問題? 我的猜測是,Twitter有特殊的邏輯,檢查用戶名(檢查特殊字),並相應地使用URL重寫和路由。 雖然我很好奇地看到代碼片段:)
他們不能提前知道。他們將在未來幾年做什麼發展。但詛咒的趨勢,目前和即將到來的項目可以保留的話 - 以防萬一。
登錄/註銷部分容易通過重寫/路由URL
/login/ - go to login code
/([a-z]+?)/ - go to user page appending $1
那並沒有回答關於他們如何提前知道有什麼新的特殊的話會的問題來實現的。 – Oddthinking 2010-09-30 06:22:26