【问题标题】:Why does Codeigniter 2 routing work but not on Codeigniter 3?为什么 Codeigniter 2 路由可以工作,但在 Codeigniter 3 上不行?
【发布时间】:2016-12-10 05:04:07
【问题描述】:

我正在使用 codeigniter 3 开发一个项目,但我遇到了路由问题。

$route['forgot-password'] = "Auth/forgot_password";

当我请求 url 时显示错误,错误如下所示

http://localhost/myproject/forgot-password/404

它在 Codeigniter 2 上运行良好,但在 Codeigniter 3 上无法运行。

提前致谢

【问题讨论】:

  • 请分享您遇到的错误
  • 它在 url 中显示 404 是问题,它总是将我重定向到 404
  • 您是否还在忘记密码后添加了额外的参数,例如localhost/myproject/forgot-password/{parameter}
  • 您可以更改路由名称,例如 $route['forgot-password'] = "auth/forgot_password"; 并检查控制器名称的第一个字符是否为大写:class Auth 扩展了 MY_Controller

标签: php codeigniter routes codeigniter-3 codeigniter-2


【解决方案1】:

在 codeigniter 3 中

$route['forgot-password'] = "Auth/forgot_password";

改成

$route['forgot-password/(:any)'] = "Auth/forgot_password/$1";

或者只是数字

$route['forgot-password/(:num)'] = "Auth/forgot_password/$1";

在根项目中创建文件 .htaccess 并附加代码

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

【讨论】:

  • 使用 $route['forgot-password/(:any)'] = "auth/forgot_password/$1" 我有我的看法,但它在 url localhost/codeigniter_migrate_2_3/forgot- 中显示 404密码/404
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-23
  • 1970-01-01
  • 2013-08-11
  • 2021-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多