CakePHP3で作るアプリケーションで、ログイン画面を隠すためにルーティングを設定しようとしています。
実現したいこと
- 「http://hoge.com/admin/xxxxx」にアクセスすると、Admin/UsersControllerのloginアクションを実行できる
- Admin/UsersControllerのloginアクションを隠したい(デフォルトで生成されるURL「http://hoge.com/admin/users/login」にアクセスすると404エラーになるようにしたい)
試したこと
routes.phpに以下を入力
PHP
1 Router::prefix('admin', function ($routes) 2 { 3 // Register scoped middleware for in scopes. 4 $routes->registerMiddleware('csrf', new CsrfProtectionMiddleware([ 5 'httpOnly' => true 6 ])); 7 8 /** 9 * Apply a middleware to the current route scope. 10 * Requires middleware to be registered via `Application::routes()` with `registerMiddleware()` 11 */ 12 $routes->applyMiddleware('csrf'); 13 14 $routes->connect('/', ['controller' => 'Users', 'action' => 'index', 'prefix' => 'admin']); 15 $routes->connect('/xxxxx', ['controller' => 'Users', 'action' => 'login', 'prefix' => 'admin']); 16 $routes->fallbacks(DashedRoute::class); 17 }); 18
試した結果
→ 実現できた
0. Admin/UsersControllerのloginアクションを隠したい(デフォルトで生成されるURL「http://hoge.com/admin/users/login」にアクセスすると404エラーになるようにしたい)
→ 以下のURLにリダイレクトされてしまうためURLがバレる
「http://hoge.com/admin/xxxxx?redirect=%2Fadmin%2Fusers%2Flogin」
CakePHP2での方法が紹介されているのは見かけましたが、3.x系の方法は見つけられておりません。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/09 14:45