0

重複の可能性:
CodeIgniter-$ route ['(:any)'] ='pages / view / $ 1'を使用する場合、他のコントローラーの使用方法は?

codeigniterでURL​​短縮/リダイレクトWebアプリを使用していますが、ルートで問題が発生しました。

私が持っている最初のルートは次のとおりです。

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

これがリダイレクトを処理するため、example.com/dwBはリダイレクトコントローラーに移動します。

その下には、ページや他のコントローラーなどのルートをオーバーライドするルートがいくつかあります。引数などを含むURL全体を記述すると正常に機能しますが、次のような動的URLがあるため、問題が発生しました。

 example.com/stats/view/dwB

または、Facebookの認証応答など、明らかにルートを書くことはできません。私は次のようなものを使用してみました:

 $route['stats/view/(:any)'] = "stats/view/$1";

しかし、これらのどれも最初のルートを上書きするようには見えません。これが私のroutes.phpドキュメント全体です。

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

$route['shorten/create'] = "shorten/create"; // overwrite the previous route

$route['stats/view/(:any)'] = "stats/view/$1"; // allow the stats controller to be used

$route['login'] = "auth/login"; // allow the login(auth) controller to be used
$route['register'] = "auth/register"; // allow the login(auth) controller to be used
$route['auth_social/fblogin'] = "auth_social/fblogin"; // allow the login(auth) controller    to be used
$route['dashboard'] = "dashboard"; // allow the login(auth) controller to be used
$route['auth/logout'] = "auth/logout"; // allow the login(auth) controller to be used
$route['auth'] = "auth/index"; // allow the login(auth) controller to be used

$route['default_controller'] = "pages";

$route['404_override'] = '404';
4

1 に答える 1

2

コメントで述べたように、次のように、「任意の」ルートをカスタム ルートの最後に配置します。

$route['shorten/create'] = "shorten/create"; // overwrite the previous route

$route['stats/view/(:any)'] = "stats/view/$1"; // allow the stats controller to be used

$route['login'] = "auth/login"; // allow the login(auth) controller to be used
$route['register'] = "auth/register"; // allow the login(auth) controller to be used
$route['auth_social/fblogin'] = "auth_social/fblogin"; // allow the login(auth) controller    to be used
$route['dashboard'] = "dashboard"; // allow the login(auth) controller to be used
$route['auth/logout'] = "auth/logout"; // allow the login(auth) controller to be used
$route['auth'] = "auth/index"; // allow the login(auth) controller to be used

// Move "any" route down here...
$route['(:any)'] = "redirect/index/$1";
于 2013-01-01T18:28:05.643 に答える