0

コントローラーが 2 つある 1- サイト 2- 管理

最初のコントローラー (サイト) は正常に動作しますが、2 番目のコントローラー (管理) は動作しません。

何がエラーなのかわからない

routes.php を変更しましたが、それでも動作しません (管理)

$route['default_controller'] = "site";
$route['(:any)'] = "site/$1";
$route['Administration'] = "Administration/index";
$route['Administration/([a-z])'] = 'Administration/$1';

このリンクは機能します:

example.com/hotel/12312

example.com/contact

example.com/city/newyork

example.com/管理

しかし、このリンクは機能しません:

example.com/Administration/hotels

example.com/Administration/add_new

example.com/Administration/cities

この問題を解決するのに疲れたので、問題はどこにありますか

かく

4

3 に答える 3

4

これは、ルート ディレクティブを指定する順序に関係しています。コード イグナイターはリクエストを上から下にルーティングするため、$route['Administration'] を $route['(:any)'] の前に配置したい場合は、最初に設定する必要があります。

$route['default_controller'] = "site";
$route['Administration/([a-z])'] = 'Administration/$1';
$route['Administration'] = "Administration/index";
$route['(:any)'] = "site/$1";

より具体的なルートを上書きしないように、(:any) ルートを最後に配置することを常にお勧めします。

于 2012-10-31T12:25:08.020 に答える
2

私は同じ問題を抱えていましたが、これが機能します:

$route['default_controller'] = "welcome";
$route['([a-z-A-Z1-9_]+)'] = "site";
$route['management']="management";
$route['404_override'] = '';

それはあなたを助けるかもしれません!

于 2012-10-31T16:07:11.703 に答える
0

Codeigniter ルーティングには詳しくありませんが$route['(:any)'] = "site/$1";、管理ルートに到達する前にすべてが一致しているように見えます。他のすべての下に移動してみてください...([a-z])一致するように管理ルートを切り替える必要がある場合もあります

$route['default_controller'] = "site";
$route['Administration/([a-z])'] = 'Administration/$1';
$route['Administration'] = "Administration/index";
$route['(:any)'] = "site/$1";
于 2012-10-31T12:22:09.523 に答える