重写我的主控制器(主页),所以我没有在URL中看到它,这可能吗?

时间:2011-07-20 12:55:25

标签: php codeigniter mod-rewrite

我有一个代码点火器项目,我使用Mod_rewrite使用this方法从url中删除“index.php”。这很好用。

但是现在,我想在config / routes.php中删除名为“Home”的主控制器(即default_controller)。

所以基本上,我目前的网址是:

http://localhost:85/project/Home/portfolio
http://localhost:85/project/Home/about_me

我希望它是:

http://localhost:85/project/portfolio      // Get rid of the "Home"
http://localhost:85/project/about_me       // Get rid of the "Home"

如果我使用除“Home”(我的主控制器)之外的另一个控制器,我希望它正常显示在URL中。

因此,如果我创建一个名为“Blog”的控制器,我希望能够在URL中使用“Blog”,所以我不想摆脱这个,因为它不是default_controller。

所以我应该像往常一样访问Blog方法:

// Here I want to see the Blog Controller -> Then -> Method Name as usual.
http://localhost:85/project/Blog/entry/1
http://localhost:85/project/Blog/create
http://localhost:85/project/Blog/delete

我对mod_rewrite并不擅长,所以任何简单的解释就足够了。

<小时/> [编辑]
谁能告诉我这是否可能? 还有什么可以命名我的控制器在浏览器中看起来不错,而不是“Home”?

1 个答案:

答案 0 :(得分:3)

当然,仅仅因为你已经命名控制器“Home”并没有使它与另一个控制器有任何不同。没有那么多默认控制器,因为有一个默认页面(如果没有URL段),这是在routes.php中定义的。您还可以使用路线来映射CI中的请求而不是.htaccess(正是它们的用途):

$route['portfolio'] = 'home/portfolio';
$route['about_me'] = 'home/about_me';

// Alternative
$route['(portfolio|about_me)'] = 'home/$1';

这基本上说:“如果用户请求$ key,给他们$ value”。路线很棒,绝对值得学习如何利用你的优势。

了解详情:http://codeigniter.com/user_guide/general/routing.html