阻止访问/ index(默认Controller操作)

时间:2014-12-07 15:33:00

标签: php laravel routing

我的routes.php看起来像这样:

Route::controller('/', 'HomeController');

默认根操作为getIndex()。但是,键入地址[DOMAIN NAME]/index也会返回起始页面。我该如何防止这种情况?我希望只有在转到项目的根URI(/)时才能访问起始页。

3 个答案:

答案 0 :(得分:0)

您正在使用RESTful资源控制器,将其替换为

 Route::get('/', 'HomeController@getIndex'); 

其他选项

/默认情况下指控制器中的索引方法,你可以使索引引用另一种创建你想要的视图的方法。

   Route::get('index', 'SomeController@someMethod');
你的route.php文件中的

如果您希望页面显示404,您可以在SomeController @ someMethod

中使用
public function someMethod()
{
   App::abort(404)
 }

或者不使用方法

 Route::get('index', function() { 
   App::abort(404) 
 })

答案 1 :(得分:0)

如评论中指出的那样,您需要将/index路线列入黑名单。 但只有那个!您不需要将每条路由列入黑名单,而不希望用户看到,因为Laravel会为每个未定义的路由处理。但index特殊情况,因为您必须将默认路线命名为某些名称,不是吗?

长时间的谈话,简短的意思:请放心,只有 必须将每条index路线列入黑名单,如果它对您来说很重要。

答案 2 :(得分:0)

我解决了这个问题:

Route::get('/', 'HomeController@index');

Route::controller('/', 'HomeController');

我有理由想要一个控制器来处理我的所有路线:)