2010-06-26 172 views
0

我利用笨的,我现在有这个网址的格式设置:如何将登录的用户名登录到URL中?

http://example.com/view/ 

我想提出的登录用户名称的网址,同时移除URL的视图部分。该视图是我的控制器。因此,我可以有一些看起来像这样在地址栏中输入:

http://example.com/johnny 

不过,我首先尝试使用我的htaccess的文件像这样除去视图部分:

RewriteEngine on 
RewriteBase/
RewriteCond $1 !^(index\.php|images|css|js|swfupload|uploads|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [QSA] 

#trying to remove view?? 
RewriteRule ^(.*)$ view.php/$1 [QSA] 

但是,这导致了403 (禁止)错误,因为我刚刚损坏了请求的URL!

我该如何做到最好?也许使用Codeigniter的路线?

谢谢大家的帮助。

+0

如果用户jane查看'http:// example.com/johnny',该怎么办?你会显示一个错误,或者你会显示类似johnny的简介页到jane(类似于Facebook的做法)? – Lukman 2010-06-26 13:54:26

+0

@Lukman - 是的,那就是我试图实现的那种功能。我将检查用户是否已登录,如果不将其重定向到其他用户只能查看该用户个人资料的页面。 – Abs 2010-06-26 14:39:32

回答

4

你基本上必须做一个路线,然后路由其他一切不适合配置文件。它的烦人,但这就是你如何在CI中做到这一点,我可能是错的。例如:

$route['user/login'] = "user/login" 
$route[':any'] = "profile/$1"; // user profile 
+0

我可以在路由文件中添加登录名称的URL吗?即'$ username = $ this-> session-> userdata('username'); $ route ['view /'.$ username] =“view/index/$ 1”;'?? – Abs 2010-06-26 14:41:02

+0

@Abs不,但你为什么需要? – mikelbring 2010-07-07 15:41:20

相关问题