我在项目中使用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
课程中进行操作设计并进行处理?
答案 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中为它定义自定义路由,如果你想实现它。