这个项目类似于建立在codeigniter上的社交网站。
这里我的默认控制器是MyController.php(加载登录页面) 并说我的域名是aravind.com
在我的应用程序中,每个用户都有一个唯一的ID。
我的要求是什么,用户的特定页面应该在什么时候打开
在域名之后,用户的unique_id会立即得到。
即,phrasesPage.Title = string.Format("Timer: {0:D3}", AS.timerSeconds);
应该打开其唯一ID为123的用户页面。
我知道这可以通过在控制器之间放置一个控制器和一个功能来实现
domain和unique_id,(例如:aravind.com/123
)。
但是通过这样做,特定用户的URL变得冗长,这是不可接受的。
所以我需要一个逻辑来解决这个问题。
注意:
我的控制器包中有其他类和文件夹,所以必需的soln应该是
足够聪明,可以使用UniqueID来区分控制器包中的类和文件夹。
所以为了区分我可以说类和文件夹名称将是连续的String
其中UniqueID以下划线(aravind.com/Search_class/search_func/123
)开头。
同样的事情在Facebook上完成,就像我们输入_
一样,它会打开我的帐户,
如果网址像facebook.com/aravind.pillai.983
那样,它将打开设置页面
拥有活动会话的用户。
答案 0 :(得分:0)
您应该使用路由,您可以在其中设置所需的每条路线。在APPPATH.'config/routes.php'
文件中添加以下内容:
$route['(:any)'] = 'Search_class/search_func/$1';
您应该阅读有关路由的documentation并查看其他examples。
另外,请注意应用程序将始终检查第一个URI段中的Search_class/search_func/$1
,因此您需要将此规则放在routes.php
文件的末尾。在该规则之前,您需要设置其他规则,如:
$route['about'] = 'pages_c/show/about';
$route['contact'] = 'pages_c/show/contact';
// then after all declared routes, you can set wild card placeholder
$route['(:any)'] = 'Search_class/search_func/$1';
答案 1 :(得分:0)
将route["404_override"]
设置为您的一个自定义类(例如Search.php
)。
因此,当用户尝试使用无效的URL输入时,它将被重定向到Search.php。
在这里使用$this->uri->segment(1)
,您将获得第一个uri段的值。
您可以在那里编写逻辑来识别用户是否输入了有效的unique_id。
现在你在一个类(Search.php)中获得了uri值。