0

我不知道这是否是奇怪的请求,但我有一个显示用户个人资料的页面。当然,每个用户都有唯一的用户名,并且这些用户名包含在与他们的姓名相关联的链接中。点击后会转到他们的个人资料:

profile/profile_guest/username

当用户单击其中一个配置文件时,它会转到用户的配置文件,地址栏中的 url 是:

http://domain.com/profile/profile_guest/ahlam

我想要实现的是配置 routes.php 来处理这个。所以一旦点击,它会进入个人资料页面,但在 URL 地址栏中显示的是:

domain.com/ahlam

为此,我尝试了:

$route['someTest'] = "profile/profile_guest/$1";

公平地说,它不起作用,仍然显示整个 URL。我能做些什么来解决这个问题?

谢谢大家

4

2 回答 2

0

你应该使用类似的东西

$route['sometest/(:any)'] = "your/link/$1";

'$1​​' 就像您将从 '(:any)' 部分收到的参数。

于 2013-04-22T16:53:24.413 回答
0
//site.com/john          = "profile/profile_gest/john"
$route['([a-z0-9\-_]+)'] = "profile/profile_gest/$1";
//where $1 = "john", so "john" respects the pattern set below

但是 CI Routing 会理解任何与此模式匹配的 URI,例如“index”、“post”……是配置文件控制器的路由。

为了防止您可以向 url 添加规范,例如:

//site.com/john.html
$route['([a-z0-9\-_]+)\.html'] = "profile/profile_gest/$1";

//site.com/user-john
$route['user\-([a-z0-9\-_]+)'] = "profile/profile_gest/$1";

或者

如果您确定任何用户名不会与其他页面竞争,请始终将此规则放在底部,以便 CI 将在此之前检查所有其他路由规则。

注意:在此之前,您的htaccess必须设置为从您的 url 中删除 index.php。

CI URI 路由

正则表达式

于 2013-04-23T15:07:39.297 回答