ホワイトリストアプローチを採用しています。私はこの配列に置かれたページを除いてすべてが公開からブロックされています。
// config/application.php
return array(
'safe' => array(
'/',
'card/form_confirm',
'record/form_create',
'card/form_viewer',
'user/login',
'user/quick_login',
'user/register',
'info/how_it_works',
'info/pricing',
'info/faq',
'info/our_story',
'invite/accept',
'user/terms',
'user/privacy',
'email/send_email_queue',
'user/manual_login',
'checkin/',
'checkin/activate',
'system/list',
),
// routes.php
Route::filter('before', function()
{
// Maintenance mode
if(0) return Response::error('503');
/*
Secures parts of the application
from public viewing.
*/
$location = URI::segment(1) . '/' . URI::segment(2);
if(Auth::guest() && !in_array($location, Config::get('application.safe')))
return Redirect::to('user/login');
});
ええ、私はそれを行うことができます。問題は私が多くの内側のページを持っていることです。すべてのページを確認できません。 – Mifas
ちょっと編集しました – matiit
ルートグループはこれを達成するためにフィルタを適用するのに理想的ですが、実行可能な選択肢としてビューレベルで行うことはお勧めしません。あなたがユーザーを追い出すビューのレンダリングを始める前に、 'POST'はまだ効果があります) – Simon