在 laravel 5.4 自动重定向到 404 页面

Posted

技术标签:

【中文标题】在 laravel 5.4 自动重定向到 404 页面【英文标题】:redirect to 404 page automatically at laravel 5.4 【发布时间】:2017-09-20 21:18:48 【问题描述】:

我用 laravel 5.4 制作了简单的简历网站,如果用户输入除我的网站名称和我的 site.com/panel 之外的任何内容,我想自动重定向到 404 页面。

我该怎么做?

有什么途径可以做到吗?

我找到了这段代码,但没有使用

 public function render($request, Exception $e)

    if ($e instanceof 
    \Symfony\Component\HttpKernel\Exception\NotFoundHttpException)

        return response(redirect(url('/')), 404);
    
    return parent::render($request, $e);


【问题讨论】:

根据文档“创建一个resources/views/errors/404.blade.php。此文件将在您的应用程序生成的所有 404 错误中提供。” 感谢 man.it 工作 :) @linktoahref 是对的,我只是将正确的链接添加到 Laravel 5.5 文档 laravel.com/docs/5.5/errors 和完整引用:Laravel makes it easy to display custom error pages for various HTTP status codes. For example, if you wish to customize the error page for 404 HTTP status codes, create a resources/views/errors/404.blade.php. This file will be served on all 404 errors generated by your application. The views within this directory should be named to match the HTTP status code they correspond to. 【参考方案1】:

只需添加abort 方法

 return abort(404);

它会自动重定向到您的resources/views/errors/404.blade.php

【讨论】:

这不会将 URL 更改为 /404。 @braed 没关系,因为您显示的 404 页面表明该 URL 不存在。 函数abort是无效的,所以不需要return【参考方案2】:
return abort(404);

并通过获取请求为这个特定的操作/方法设置你的路线。

【讨论】:

【参考方案3】:

另外,您可以提供响应文本:

return abort(403, 'Unauthorized action.');

【讨论】:

以上是关于在 laravel 5.4 自动重定向到 404 页面的主要内容,如果未能解决你的问题,请参考以下文章

如果用户未使用中间件进行身份验证,Laravel 5.4 将重定向到特定页面

如果路由不在子域中,Laravel 子域路由重定向到 404

Laravel 重定向到一个路由,但是 apache 给出 404 错误

Laravel 5.4 POST 到 API 重定向 302 而不是返回验证错误

Laravel 5.2 如何将所有 404 错误重定向到主页

laravel 5.4 使用 ajax 登录。身份验证成功,但 redirectTo 属性不起作用并保持重定向到“/home”