1

我有一个文章控制器和一个视图函数来显示单个文章,所以我的网址就像

http://domain.com/articles/view/<article-id>/<article-title>

我的代码:

class Articles extends CI_Controller {  
   function view($id=NULL,$slug=""){
        //Code to fetch article details from DB by id
    }
}

它如何使我的网址看起来像http://domain.com/<article-title>

谢谢你。

4

2 回答 2

3

将路由配置中的所有控制器定义为它们自己的方法。在路由配置的末尾添加以下规则 -

$route['(:any)']   = 'articles/view/$1';

除了先前定义的路由之外的所有请求现在都将由artcile/view控制器方法提供服务。

下一部分是创建一个映射表,它将文章标题映射到文章 ID。你可以得到文章标题

$this->uri->segment(1);

view功能上。

每当文章用标题更新时,也会更新映射表。

于 2013-07-19T08:11:32.970 回答
1

我为我的博客做了类似的事情。@Varun 根据 Sachin 的评论,这是路由路径domain.com/articles/view/的下划线,实际上您会看到 url如预期的那样domain.com/ 。

我也扩展了这样的级别网址

$route['spring/(:any)'] = "controller_name/method_name/$1";
$route['hibernate/(:any)'] = "controller_name/method_name/$1";

所以实际的 URL 看起来像这样

domainname.com/spring/spring-jdbc-example which is mapped to  "controller_name/method_name/$1"
于 2013-10-11T03:40:41.270 回答