Codeigniter URL路由问题

时间:2011-03-25 13:02:13

标签: php apache codeigniter mod-rewrite codeigniter-routing

我想知道如何使用Codigniter MVC框架来完成以下任务:

我希望我网站上的网址如下所示:

http://www.example.com/florida/miami/12345-selling-a-new-ipod.html
http://www.example.com/texas/houston/21345-nice-red-car-for-sale.html
http://www.example.com/north-carolina/hickory/92634-giving-away-two-kitties.html

所以基本上URI是由州/市/文章组成的。

我想覆盖50个州的所有城市,但我不想为每个州和每个城市编写控制器。

所以我的问题基本上是:

如何编写一个基于第一个URI段显示状态索引的控制器和一个基于第二个URI段显示城市索引的第二个控制器?

祝你好运

汤姆

2 个答案:

答案 0 :(得分:1)

您可以在Apache中使用mod_rewrite进行URL重写。在CodeIgnitor http://codeigniter.com/wiki/mod_rewrite/的文档中。基本上,您必须定义正则表达式以将/arg1/arg2/arg3重写为url your_controller/state=arg1&city=arg2&value=arg3 mod_rewrite的详细信息可以在http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

找到

答案 1 :(得分:1)

您可以通过在config/routes.php

中配置路线来实现
$route['^(:any)/(:any)'] = "some_controller/some_method/$1/$2";

将把所有内容映射到some_controller类的some_method函数。 因此,如果您还有其他任何不是example.com/state/city的内容,它也会被发送到那里......您必须使用其他路线将其路由到那里。