干净的URL无法在CodeIgniter中获取函数ID

时间:2011-03-08 10:43:49

标签: php codeigniter

我在项目中使用CodeIgniter,我需要清理网址。我用这个htaccess:

RewriteEngine On
RewriteCond $0 !^(index\.php|images|captcha|css|js|robots\.txt)
RewriteRule ^.*$ index.php [L]

网址重定向工作正常。 如果我使用localhost/example/controll/这可以正常工作,如果我有一个controll作为控制器,但如果我需要将值传递给控制器​​,如localhost/example/controll/how-to-design/,则表示找不到404。我是否需要在controll课程中进行操作设计并进行处理?

3 个答案:

答案 0 :(得分:1)

网址localhost/example/controll/how-to-design转换为名为controll的控制器和名为how-to-design的方法

CI将寻找一种名为how-to-design的方法,该方法可能不存在。

如果您想将该参数传递给controll,则网址必须为:

controll/index/how-to-design

function index($param)
{ 
   echo $param; // echoes how-to-design
}

您可以使用routing或在URI中使用index来解决此问题。

答案 1 :(得分:0)

默认情况下,CodeIgniter不能将参数传递给控制器​​索引函数 - 在您的示例中,CI将寻找一种名为“如何设计”的方法(这本身是不可能的,因为不允许使用破折号) PHP函数命名约定。)

您可以使用控制器中的特殊_remap方法手动处理路由 - http://codeigniter.com/user_guide/general/controllers.html#remapping - 或者您可以在config / routes.php中设置一些手动路由

答案 2 :(得分:0)

编写一个新函数,并在routes.php中为它定义自定义路由,如果你想实现它。