Laravel 5 Laravel 5定制“;“未找到”;页

Laravel 5 Laravel 5定制“;“未找到”;页,laravel-5,laravel-routing,middleware,Laravel 5,Laravel Routing,Middleware,问题如下 如何为Laravel 5中不存在的页面设置默认路由?因此,当找不到页面时,一些默认视图显示为状态200。我认为对于不存在的页面,您应该使用状态代码404,但如果您想通过200 ok,那么这应该可以正常工作 在views>>errors目录中创建一个文件404.blade.php,并放置abort(200)在其中 更新 或者您可以将此代码放入文件app/Exceptions/Handler.php public function render($request, Exception $e

问题如下


如何为Laravel 5中不存在的页面设置默认路由?因此,当找不到页面时,一些默认视图显示为状态200。

我认为对于不存在的页面,您应该使用状态代码404,但如果您想通过
200 ok
,那么这应该可以正常工作

views>>errors
目录中创建一个文件
404.blade.php
,并放置
abort(200)在其中

更新 或者您可以将此代码放入文件
app/Exceptions/Handler.php

public function render($request, Exception $e)
{

    // 404 page with status code 200
    if ($e instanceof ModelNotFoundException) {
        return response()->view('errors.404', [], 200);
    }

    return parent::render($request, $e);

}

注意:在
views>>errors
目录下创建文件
404.blade.php
是必须的,或者需要传递另一个自定义视图。

您可以通过创建名为404.blade.php的刀片模板并将其放置在resources/views/errors目录中来创建自定义404视图


但是,不要发送200 OK HTTP状态。这完全破坏了HTTP协议所代表的一切。

有时我们需要非标准解决方案。@KenShiro在违背HTTP约定时就不需要了。如果找不到页面,为什么要发送200 OK响应?我们需要始终显示单个页面,无论请求什么用户。有时我们会为一些特殊请求添加自定义页面。@KenShiro您仍然可以显示相同的视图,但发送不同的HTTP状态。关于应用程序架构的视图或任何内容都不应指定返回的HTTP状态代码。如果用户不存在,请发送404。你仍然可以看到美丽的景色。