我在目录/ system / application / controller /
下有一个索引控制器名称Index.php我已经设定了.htacesss的规则
RewriteEngine on RewriteCond $ 1!^(包括|| index.php | images | robots.txt) RewriteRule ^(。*)$ / index.php/$1 [L]
然后我转$ route ['default_controller'] =“index”;
和我配置$ config ['index_page'] =“”;
我在我的控制器中有一个索引动作
当我访问http://domain/index/index/en时将有404
当我访问http://domain/index/index/index/en时会很好
我尝试在Libraries / Router.php中回显$ this-> uri->段
发现如果我使用index / index / en请求,它只返回index和en
如果我请求index / index / index / en它返回index,index和en,
作为ci路由逻辑,第一个段是控制器名称,第二个是动作
可以解决????只是不想在主页上太长的网址
答案 0 :(得分:10)
documentation实际上表明控制器不能命名为'index',因为它是一个保留字。
如果你的目标是获得漂亮的URL,你应该保留原来的默认控制器,并将$ config [“index_page”]变量留空。
然后创建此.htaccess文件:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L,QSA]
那会让CI和你成为幸福的一对......