0

我有一个像这样的 url 结构

http://example.com/merchant/index/1-westside

目前我在 routes.php 中添加了一行,例如

$route['merchant/(:any)'] = "merchant/index";

通过使用这条路线,我得到了类似的网址

http://example.com/merchant/1-westside

但我需要像这样的网址

http://example.com/1-westside

简而言之,我想从 url 中隐藏控制器名称,即“商家”。请帮忙。

4

2 回答 2

0
$route['(:any)'] = 'merchant/index/$1';

但请注意,这将影响对站点的所有请求,因此如果您要使用其他控制器,则需要为它们创建一个路由并将它们放置在此路由之前。

因此,例如,如果您创建另一个名为 的控制器payments,则需要在此之前为其放置一个路由:

$route['payments/(:any)'] = 'payments/index/$1';
$route['(:any)'] = 'merchant/index/$1';

这将无法正常工作:

$route['(:any)'] = 'merchant/index/$1';
$route['payments/(:any)'] = 'payments/index/$1';

此外,您只能对一个控制器执行此操作。即,您只能拥有 1 个控制器和使用“无控制器”网址的方法。如果您想使用除 之外的其他控制器方法merchant/index,则必须在 URL 中使用控制器名称(或某些标识符)以使路由了解您想要的内容。

于 2013-11-12T14:08:04.233 回答
0

尝试设置$route['default_controller'] = 'merchant';

于 2013-11-12T14:08:52.570 回答