基于用户名的URL

时间:2010-09-30 06:05:33

标签: url seo url-routing

http://twitter.com/codinghorror
http://twitter.com/login

这些看起来都像是Twitter帐户,但第二个看起来不是。这是一个系统页面。

twitter如何知道logout不是用户名,如何确保没有用户在系统页面名称下注册,或者将来可能存在?

3 个答案:

答案 0 :(得分:3)

在大多数网址路由框架中,您的路由规则都有一个优先顺序。通常拳头先发球,所以匹配的第一个url patten控制网址。

在这种情况下,我们可以说twitter必须定义路由

map.connect 'login', :controller => 'auth', :action => 'login'
map.connect ':username', :controller => 'user', :action => 'show'

第一条路线与网址twitter.com/login匹配,但当您输入twitter.com/coddinghorror时,它将无法匹配第一条路线,然后匹配第二条路线。

答案 1 :(得分:2)

他们事先无法知道。他们将在未来几年做些什么样的发展。但是,诅咒可以保留趋势,当前和即将到来的项目 - 以防万一。

通过重写/路由URL

可以轻松实现登录/注销部分
/login/ - go to login code
/([a-z]+?)/ - go to user page appending $1

答案 2 :(得分:0)

好问题? 我的猜测是Twitter有特殊的逻辑来检查用户名(检查特殊单词)并相应地利用URL重写和路由。 我很想看到代码的片段:)