3

codeIgniter に bit_auth という名前の認証モジュールをインストールしました。「bit_auth」という名前のそのモジュールのコントローラーがあるため、コントローラーで関数を呼び出すと、URL は次のようになります。

http://(mydomain.com)/bit_auth/
http://(mydomain.com)/bit_auth/edit_user/1
http://(mydomain.com)/bit_auth/activate/7b60a33408a9611d78ade9b3fba6efd4fa9eb0a9

ここで、コントローラを から呼び出されるようにルーティングしたいと思います。bit_authhttp://(mydomain.com)/auth/... " " でこれらのルートを定義しましたconfig/routes.php:

$route['auth/(:any)'] = "bit_auth/$1";
$route['auth'] = "bit_auth";

http://(mydomain.com)/auth/ を使用すると正常に動作しますが、次のようなリンクを開くと 404 ページが見つかりませんというエラーが表示されます:
http ://(mydomain.com)/auth/edit_user/1 http ://(mydomain.com)/auth/activate/7b60a33408a9611d78ade9b3fba6efd4fa9eb0a9


私は何を間違っていますか?

4

2 に答える 2

4

ルートにあるよりも多くのパラメーターを使用しているため、これを行う必要があります。

$route['auth/(:any)/(:num)'] = "bit_auth/$1/$2";

お役に立てれば!

于 2015-05-20T15:34:02.680 に答える
1

グーグルで調査した後、 CodeIgniterでのルーティングに別の構文を使用している場所をどこかで見(:any)ました(:num)。私は私のものに置き換え(:any)たばかり(.+)で、config/routes.php今では完璧に機能しています。

$route['auth/(.+)'] = "bit_auth/$1";
$route['auth'] = "bit_auth";

CodeIgniter(:any)には と(:num)が含まれておらず/([^\/]+)、それらはandの正規表現パターンのエイリアスである(\d+)ため、任意の数を含むリンクの残りを一致させたい場合は、そのパターンに含まれ、すべての残りをトリガー/する手動の正規表現パターンを使用できますURLの。(.+)/

于 2015-05-22T10:24:56.087 に答える