3

ルートとコントローラーに問題があります。2 種類のコントローラーがあります。最初のタイプは Web ページの管理に使用され、2 番目のタイプは cms に使用され、サブフォルダーに配置することを好みます。例:

/controller/site.php (for webpages)
/controller/admin/ (for controllers to manage cms)

routes.php に次のように書いています。

$route['(:any)'] = "site/$1";
$route['admin/(:any)'] = "admin/$1";

ファイル .htaccess を次のように設定しました。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|css|js|font|woff|ttf|svg|eot|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

そしてconfig.phpのこの変数:

$config['index'] = '';

ただし、「サイト」でのみ機能します。たとえば、「mywebsite/admin/login」と書くと、404 エラーが返されます。

CI_Route を拡張する MY_Router も見つかりましたが、機能しません。

誰かがこの問題を解決するのを手伝ってくれますか?

4

1 に答える 1

10

adminルートをルートの前に置きanyます。

$route['admin/(:any)'] = "admin/$1";
$route['(:any)'] = "site/$1";

そうしないと、常にヒットanyして にリダイレクトされsiteます。admin一致する前に、一致する機会を与える必要がありますany

于 2013-09-12T13:41:52.097 に答える