我在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 错误。
我该怎么办?
答案 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";
答案 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";