「/new」ルートのフォームでsymfony2ウェブページを作成しました。ユーザーが入力をコントローラーに送信すると、コントローラーは「/ create」をレンダリングし、正常に完了すると、最終ルート「/ thankyou」が呼び出され、ありがとうページが表示されます。
/createPOSTが成功した場合にのみアクセスできる/thankyouルートへの直接アクセスを無効にしたい。これは/create(なぜ?)では機能しますが、/thankyouでは機能しません。
「/new」ルートのフォームでsymfony2ウェブページを作成しました。ユーザーが入力をコントローラーに送信すると、コントローラーは「/ create」をレンダリングし、正常に完了すると、最終ルート「/ thankyou」が呼び出され、ありがとうページが表示されます。
/createPOSTが成功した場合にのみアクセスできる/thankyouルートへの直接アクセスを無効にしたい。これは/create(なぜ?)では機能しますが、/thankyouでは機能しません。
リファラー情報に基づいて、「/Thankyou」アクションにいくつかの条件を追加できます。
$request->headers->get('referer');
または、@ Florianが言ったように、URLでいくつかの追加パラメーターを使用することもできます。
ルートにを追加するrequirements: _method: POST
と、少なくともPOST操作へのアクセスが制限されます。
しかし、特定のサイトからのPOSTのみが受け入れられるようにする方法がわかりません。たぶん、コントローラーでチェックするパラメーターとして渡される特別なトークンを使用すると、うまくいく可能性があります。