Codeigniter路线问题

时间:2012-03-01 01:44:20

标签: codeigniter

我想知道是否有人可以帮助我。

目前,要在我的codeigniter应用中查看用户个人资料,网址如下:

http://www.website.com/profile/u/username

我想将此更改为

http://www.website.com/username

这是否可以使用路线?若有,有人可以给我一些建议怎么做?

此外,如果有人注册了与控制器名称相同的用户名,那么会发生什么?

干杯,

2 个答案:

答案 0 :(得分:3)

1. Is this possible using routes?

2. If so could someone give me a bit of advice how to do it?

当然:$route['(:any)'] = "profile/u/$1";

更多信息:http://codeigniter.com/user_guide/general/routing.html

3. Also, if someone signs up a username that is the same as a controller name, what would happen then?

您不应该允许用户使用这样的用户名进行注册。 Facebook这样做! (www.facebook.com/groups/123457890 =“groups”不能用作用户名)

为了避免对控制器的访问被路由到配置文件访问,您应该将路由配置之前添加到上面提到的那个,如下所示:

$route['(admin|groups|signup)'] = "$1";

这里我们有一个正则表达式,易于理解。您只需要将控制器名称与竖线字符分开。

我希望这有帮助!

答案 1 :(得分:0)

此链接可以帮助您: http://ellislab.com/forums/viewthread/186025/

你可以按照它说的做。

你必须使用apache重写模块并首先使用.htaccess

上的RewriteEngine
RewriteCond $1 !^(index\.php|(.*)\.swf|forums|images|css|downloads|jquery|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]
and delete index.php from applications/config/config.php

$ config ['index_page'] =“index.php”; 和路线

$route['^(?=[^\s]*?[0-9])(?=[^\s]*?[a-zA-Z])[a-zA-Z0-9]*$'] = "user/$1";`