2010-06-03 22 views
0

我希望我的網站中的用戶擁有自己的URL,例如http://mysite.com/username(類似於GitHub,例如我的帳戶是http://github.com/sr3d)。這將有助於搜索引擎優化,因爲每個配置文件都在相同的域下,與子域方法相同。github url style

我的網站運行在Rails和Nginx/Passenger上。目前我有一個解決方案,使用nginx.conf文件中的一堆重寫,以及硬編碼的控制器名稱(也支持命名空間)。如果你們想看看,我可以在這裏分享包括nginx.conf。

我想知道是否有更好的方式使URL非常像。

(如果你提出一個更好的地方張貼這個問題,那麼請讓我知道)

乾杯,

亞歷

回答

5

將在routes.rb中文件的末尾這一行權, (因此,這並不與其他控制器的路由干擾)

 
map.connect "/:username", :controller=> "users", :action => "show" 
在users_controller

,使用下面的行來獲取該用戶

 
    @user = User.find_by_username(params[:username]) 

我不認爲這會需要任何nginx魔術或url重寫。

HTH

+3

這將涉及到某些用戶名被黑名單,以避免與先前定義的路由不明確。 – hurikhan77 2010-06-06 08:45:05

+0

感謝您指出,將某些用戶名列入黑名單將是必需的。 – 2010-06-06 16:21:21

+0

這裏有一個很好的智能用戶名黑名單示例,包括Github正在使用的黑名單:http://www.quora.com/How-do-sites-prevent-vanity-URLs-from-colliding-with-future-features? __snids __ = 4909005 – 2011-03-03 05:43:41