我想用Codeigniter路由更改URL:
这是我的网址:
home/search?location=BD
home/search?location=BD&category[]=123
home/search?location=BD&category[]=123&category[]=124&category[]=125
喜欢上面的url,但我想用路由这个url
home/BD
home/BD/123
home/BD/123+124+125
或
home/BD/123/124/125
Myroute.php:
$route['home/(:any)/(:any)'] = 'home/search/$1';
我在route.php
页面中有什么问题?
尝试在route.php
上使用(.+)
模式,$1
将包含location
值(BD
(,$2
将包含超过home/BD/
url:的所有参数
$route['home/(:any)/(.+)'] = 'home/search/$1/$2';
(.+)
模式非常有用,如果您不知道传递了多少参数,它将允许您捕获所有参数。也许您应该使用&
来代替url上的+
符号,因为默认情况下可能不允许使用+
符号:
home/BD/123&124&125
然后你可以在控制器上分解类别:
public function search($location = '', $categories = '')
{
if (!empty($categories)) {
$categories = explode('&',$categories);
}
...
}