gpt4 book ai didi

Codeigniter 路由 Controller 子文件夹

转载 作者:行者123 更新时间:2023-12-01 08:31:39 25 4
gpt4 key购买 nike

我的路由和 Controller 有问题。我有两种类型的 Controller :第一种用于管理网页,第二种用于 cms,我更喜欢将它们放在子文件夹中。示例:

/controller/site.php (for webpages)
/controller/admin/ (for controllers to manage cms)

在 routes.php 我写过:

$route['(:any)'] = "site/$1";
$route['admin/(:any)'] = "admin/$1";

我已经以这种方式设置了文件 .htacces:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|css|js|font|woff|ttf|svg|eot|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

还有 config.php 上的这个变量:

$config['index'] = '';

但它仅适用于“站点”。例如,如果我写“mywebsite/admin/login”,它会返回 404 错误。

我还发现 MY_Router 可以扩展 CI_Route 但不起作用。

谁能帮我解决这个问题?

最佳答案

admin 路由放在 any 路由之前:

$route['admin/(:any)'] = "admin/$1";
$route['(:any)'] = "site/$1";

否则它总是会点击 any 并重定向到 site。在匹配 any 之前,你必须给它一个匹配 admin 的机会。

关于Codeigniter 路由 Controller 子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18765439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com