2016-06-25 51 views
0

如何为Main控制器中的每个页面配置路由?Codeigniter默认控制器在主索引页上工作,但不在主控制器内的页面

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] 

回答

1

试试这个。它会带你到events页时,您的网址将http://example.com/events

$route['default_controller'] = 'Main'; 
$route['events'] = 'main/events'; 
$route['404_override'] = 'main/error404'; 
$route['translate_uri_dashes'] = FALSE; 
0

这是路由器的笨是如何工作的。您可以:

  1. 移动逻辑在function events() {...}功能,它自己的class Events extends是CI_Controller {}`控制器的指数函数

  2. 设置自定义路线在config/routes.php配置文件的方法,您Main控制器是这样的:(你可以使用(:any)等参数,以及):

    $route['events/(.*)'] = 'main/events/$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] 
+0

这应该是答案 –

相关问题