Codeigniter doesn't find url throws 404 Error


Codeigniter doesn't find url throws 404 Error

我在codeigniter中有以下路线:

$route['register/new/user/from=(:any)'] = "auth/user/register/index/$1";
$route['default_controller'] = "defaultcontroller";
$route['404_override'] = '';

我的控制器文件夹中也有这样的层次结构:

auth
   |-------admin
   |-------member
   |-------user
             |----register.php
             |----tester.php

当我尝试访问http://host/index.php/auth/user/register/index/http://host/index.php/register/new/user/from=www.google.com时,它会抛出404未找到错误。

我该怎么办?

如果代码在索引方法中,则可以使用此行代码

$route['register/new/user/from/:any']="auth/user/register/index/$1";

您应该将auth/user/register/index/$1更改为register/new/user/from/:anyregister/new/user/:any,并使用段(4)

$route['register/new/user/(:any)'] = "auth/user/register/index/$1";

$route['register/new/user/from/(:any)'] = "auth/user/register/index/$1";

https://www.codeigniter.com/user_guide/general/routing.html

您的URL格式本身存在问题;您应该规范化您的URL。

http://en.wikipedia.org/wiki/URL_normalization

不能在规范化URL中的中使用等于"="的符号。

您可以在查询字符串中使用"="符号。

所以不是

http://host/index.php/register/new/user/from=www.google.com

(错误/未规范化)

尝试:

http://host/index.php/register/new/user/?from=www.google.com

(正确:查询字符串)

或者:

http://host/index.php/register/new/user/from%3Dwww.google.com

(正确但不推荐:URI编码字符串)

或者:

http://host/index.php/register/new/user/from/www.google.com

(正确:分离段)

你可以用捕捉最后一个

$route['register/new/user/from/(:any)'] = "auth/user/register/index/$1";