0

私は次のようなURL構造を持っています

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

現在、routes.phpに1行追加しました

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

このルートを使用することで、次のようなURLを取得しています

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

しかし、私は次のようなURLが必要です

http://example.com/1-westside

要するに、controller_name、つまり「merchant」も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 つのコントローラーに対してのみ実行できます。つまり、「コントローラーなし」の URL を使用するコントローラーとメソッドは 1 つしか持てません。以外の別のコントローラ メソッドを使用する場合merchant/indexは、ルートの URL でコントローラ名 (または何らかの識別子) を使用して、必要なものを理解する必要があります。

于 2013-11-12T14:08:04.233 に答える
0

設定してみてください$route['default_controller'] = 'merchant';

于 2013-11-12T14:08:52.570 に答える