Codeigniter没有找到网址抛出404错误

时间:2013-12-10 17:07:55

标签: php codeigniter url routing

我在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 not found 错误。

我该怎么办?

3 个答案:

答案 0 :(得分:4)

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

  

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

您应该将 auth / user / register / index / $ 1 更改为注册/新/用户/从/:任何注册/新/用户/:任何并使用 segment(4)

答案 1 :(得分:1)

$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

答案 2 :(得分:0)

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

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

您不能在规范化网址中的细分中使用等于“=”的符号。

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

所以而不是

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";