CakePHP(v2)でサイトを作っています。
Facebookの個人ページのURL(例:https://www.facebook.com/ichiro_suzuki)のように
ドメインの直下にユーザーIDを置いたURLで、登録された各ユーザーのページを作るにはどうしたら良いでしょうか?
今はhttps://ooooooo.com/users/view/ichiro_suzukiのような形で作ってあります。
よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
routes.phpの先頭に
Router::connect('/:controller/');
Router::connect('/:id', array('controller' => 'users', 'action' => 'view'));
と書く。
「Router::connect('/:controller/');」を入れることで、https://ooooooo.com/users/のように末尾にスラッシュが入っている場合はindexページに飛ぶ。
https://ooooooo.com/usersではindexページに飛ばなくなりるが、そこは運用で何とかする。
投稿2019/01/04 10:16
総合スコア10
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/04 10:26
退会済みユーザー
2019/01/04 10:30
退会済みユーザー
2019/01/04 10:33
2019/01/04 10:41
退会済みユーザー
2019/01/04 10:50
2019/01/04 10:58
退会済みユーザー
2019/01/04 11:07
退会済みユーザー
2019/01/04 11:20
2019/01/04 11:39
0
ベストアンサー
一言で言うと「ユーザープロフィール画面以外のルーティングのホワイトリストをつくる」です。
プロフィール画面以外も当然あるわけですが裏を返すと「プロフィール画面以外、ではないものは全部プロフィール画面」なわけなので、「プロフィール画面以外」のURL形式と利用するコントローラを設定ファイルに定義しておいて、
それ以外は全部プロフィール用のコントローラで処理させれば良いわけですね。
あとは存在するユーザかどうかのチェックを行って、存在すればプロフィール画面、しなければ404にでも飛ばせば良いでしょう。
投稿2019/01/04 09:27
総合スコア80850
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/04 10:14
2019/01/04 10:15
0
cakephp なら config/routes.php
の設定でいけると思いますが
サンプルの行
/** * Here, we are connecting '/' (base path) to a controller called 'Pages', * its action called 'display', and we pass a param to select the view file * to use (in this case, src/Template/Pages/home.ctp)... */ $routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']); /** * ...and connect the rest of 'Pages' controller's URLs. */ $routes->connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']);
その他のコントローラーに影響ないように設定の順番をする必要があります。
投稿2019/01/04 08:45
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。