Heim > Backend-Entwicklung > PHP-Tutorial > 关于CodeIgniter 3.0 default_controller的疑问

关于CodeIgniter 3.0 default_controller的疑问

WBOY
Freigeben: 2016-06-06 20:36:06
Original
1252 Leute haben es durchsucht

我在CI2.x的时候,在controller目录下,分别有admin和index两个目录分别对应后台与前台。

关于CodeIgniter 3.0 default_controller的疑问

那么routes.php中我是这样设置的

<code>$route['default_controller'] = 'index/home/index';
</code>
Nach dem Login kopieren
Nach dem Login kopieren

现在发现在3.0中,这样设置不行了。请问我应该怎么做。 比较纠结的是,我确实希望把前台放到index目录下,而不是直接移动到上层的controller里面。

请问,在现有目录结构的情况下,我怎么实现访问index.php的时候默认控制器为index/home/index

另外,不想通过redirect跳转过去,因为这样显示的就不是index.php而是把全路径暴露出来了

回复内容:

我在CI2.x的时候,在controller目录下,分别有admin和index两个目录分别对应后台与前台。

关于CodeIgniter 3.0 default_controller的疑问

那么routes.php中我是这样设置的

<code>$route['default_controller'] = 'index/home/index';
</code>
Nach dem Login kopieren
Nach dem Login kopieren

现在发现在3.0中,这样设置不行了。请问我应该怎么做。 比较纠结的是,我确实希望把前台放到index目录下,而不是直接移动到上层的controller里面。

请问,在现有目录结构的情况下,我怎么实现访问index.php的时候默认控制器为index/home/index

另外,不想通过redirect跳转过去,因为这样显示的就不是index.php而是把全路径暴露出来了

官方文档有说明

Directories and ‘default_controller’, ‘404_override’
As you should know, the $route['default_controller'] and $route['404_override'] settings accept not only a controller name, but also controller/method pairs. However, a bug in the routing logic has made it possible for some users to use that as directory/controller instead.
As already said, this behavior was incidental and was never intended, nor documented. If you’ve relied on it, your application will break with CodeIgniter 3.0.

可见官方其实是把这当成一个BUG的,并不推荐这种做法。

不想显示index.php;应该是配置:config.phg

<code>$config['index_page'] = ''; //去掉index.php
</code>
Nach dem Login kopieren

在根目录加入.htaccess

<code> RewriteEngine on
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond $1 !^(index\.php|assets|robots\.txt)
 RewriteRule ^(.*)$ /index.php/$1 [L]
</code>
Nach dem Login kopieren

再者你的配置应该是 $route['default_controller'] ='index/home';

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage