如何为Main
控制器中的每个页面配置路由?
Codeigniter默认控制器仅适用于Main
索引页面,但不适用于events
Main
控制器内的页面。 (见下文)
我希望http://example.com/main/events
代替http://example.com/events
。
此链接将您带到Main
控制器的索引页面,就像它应该:
http://example.com/
来自Main
控制器的此事件页面将带您进入404错误页面:
http://example.com/events
events
页面仅适用于URL中的默认控制器,如下所示:
http://example.com/main/events
我的routes.php文件的内容:
$route['default_controller'] = 'Main';
$route['404_override'] = 'main/error404';
$route['translate_uri_dashes'] = FALSE;
.htaccess文件的内容:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
答案 0 :(得分:1)
试试这个。当您的网址为events
http://example.com/events
页面
$route['default_controller'] = 'Main';
$route['events'] = 'main/events';
$route['404_override'] = 'main/error404';
$route['translate_uri_dashes'] = FALSE;
答案 1 :(得分:1)
在application/config/routes.php
$route['events'] = 'main/events'; # www.example.com/events
$route['newPath'] = 'controller/exactPath'; # www.example.com/newPath
在.htaccess
(外部应用程序文件夹)
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|image|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
答案 2 :(得分:0)
这是路由器在codeigniter中的工作方式。你可以:
将function events() {...}
函数中的逻辑移动到它自己的class Events extends
CI_Controller {}`控制器的索引函数
将config/routes.php
配置文件中的自定义路由设置为Main
控制器中的方法,如下所示:(您也可以使用(:any)
和其他参数):< / p>
$route['events/(.*)'] = 'main/events/$1';