Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改codeigniter中显示给用户的url_Codeigniter_Codeigniter 2 - Fatal编程技术网

更改codeigniter中显示给用户的url

更改codeigniter中显示给用户的url,codeigniter,codeigniter-2,Codeigniter,Codeigniter 2,我不知道这是否是一个奇怪的请求,但我有一个显示用户配置文件的页面。当然,每个用户都有唯一的用户名,这些用户名包含在与其姓名相关联的链接中。单击后,将转到他们的个人资料: profile/profile_guest/username 当用户单击其中一个配置文件时,它会转到用户的配置文件,地址栏中的url为: http://domain.com/profile/profile_guest/ahlam 我想要实现的是配置routes.php来处理这个问题。因此,单击后,它将转到配置文件页面,但UR

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

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。我能做些什么来解决这个问题


谢谢大家

您应该使用

$route['sometest/(:any)'] = "your/link/$1";
“$1”就像从“(:any)”部分接收的参数

但CI路由将理解任何与此模式匹配的URI,如“索引”、“发布”。。。是配置文件控制器的路由

为了防止出现这种情况,您可以向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在此规则之前检查所有其他路由规则

注意:在此之前,必须设置从URL中删除index.php


我不明白……你能解释一下吗?差不多了。OP请求的问题是将基函数用作一个包罗万象的函数。所以它将是$route['(:any)]=“profile/profile_guest/$1”;这几乎肯定会在其他地方引发问题
//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";