Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更改codeigniter中的搜索项url和路由_Php_Codeigniter_Url_Routing - Fatal编程技术网

Php 更改codeigniter中的搜索项url和路由

Php 更改codeigniter中的搜索项url和路由,php,codeigniter,url,routing,Php,Codeigniter,Url,Routing,我想使用Codeigniter路由更改URL: 这是我的网址: home/search?location=BD home/search?location=BD&category[]=123 home/search?location=BD&category[]=123&category[]=124&category[]=125 喜欢上面的url,但我想用 home/BD home/BD/123 home/BD/123+124+125 或 home/BD

我想使用Codeigniter路由更改URL:

这是我的网址:

home/search?location=BD

home/search?location=BD&category[]=123

home/search?location=BD&category[]=123&category[]=124&category[]=125
喜欢上面的url,但我想用

home/BD

home/BD/123

home/BD/123+124+125 

home/BD/123/124/125
My route.php:

route.php
页面中我的问题是什么?

尝试在
路由上使用
(.+)
模式。php
$1
将包含
位置
值(
BD
),而
$2
将包含超过
主页/BD//code>url的所有参数:

$route['home/(:any)/(.+)']='home/search/$1/$2';
(.+)
模式非常有用,如果您不知道传递了多少参数,它将允许您捕获所有参数。也许您应该使用
&
来代替url上的
+
符号,因为默认情况下可能不允许使用
+
符号:

home/BD/123&124&125
然后可以分解控制器上的类别:

公共函数搜索($location='',$categories='')
{
如果(!空($categories)){
$categories=分解(“&”,$categories);
}
...
}
home/BD/123&124&125