这是我当前的文件夹结构:
描述:
localhost/shoppingCart
Welcome
我将我的项目分为两部分:前端和后端。
对于后端我的标准控制器是“admin / home”(admin是文件夹,home是控制器的名称)
对于前端我的标准控制器是“欢迎”(欢迎是控制器的名称)
问题:
当我输入localhost/ShoppingCart/admin
时,它将“欢迎”控制器,但网址仍然相同。我想我应该抛出一些错误。
当我输入localhost/ShoppingCart/admin/home
时,它正常运作。
我尝试使用路线将localhost/ShoppingCart/admin
重定向到localhost/ShoppingCart
:
$route['/admin'] = "welcome";
答案 0 :(得分:0)
要将子文件夹重定向到您的主域,您必须执行以下操作:
#Redirect a sub folder to root
Redirect 301 /subfolder /
在你的情况下,它将是:
redirect 301 /admin /
答案 1 :(得分:0)
我猜你的问题出在路线上。
我还建议您使用" Good"控制器Naming convention Wikipedia
中的名称"欢迎"和"家庭"并不是后端和前端两种不同的东西。
现在关于代码
我假设您的routes.php
文件包含类似
$route['default_controller'] = "welcome";
现在,对于控制器文件夹中的每个子文件夹,您必须在routes.php
中设置默认控制器,$route['default_controller']
在子文件夹中不起作用。
对你来说,就像是
$route['admin'] = 'admin/home'
注意,请记住只设置您要使用的名称,关于框架将管理它们的符号/
。
答案 2 :(得分:0)
APPPATH.'controllers'
目录中的每个子目录都应该具有与APPPATH.'route.php'
中的默认控制器相同的控制器。如果您要将管理模块Home.php
重命名为Welcome.php
(类内也是如此),则可以解决此问题。这是因为,当路由器找不到第一个uri段的Admin.php
文件时,它会寻找admin
目录。找到它时,如果url中没有下一个段,路由器将寻找config.php
文件中设置的默认控制器方法。在每个子目录以及controllers
目录中为家庭或欢迎页面提供统一名称很容易解决。