laravel - 我如何限制对任何路由的直接访问并抛出 404 异常,即使路由存在?

标签 laravel exception routing http-status-code-404

我想添加对从地址栏直接访问任何 URL 的限制。如果用户在地址栏中输入任何 URL,那么即使 URL 存在,它也应该抛出 404 异常。任何人都可以有想法请提出建议。
提前致谢。

最佳答案

我能想到 3 个解决方案,每个都有自己的缺陷:

客户端路由

https://medium.com/@fro_g/routing-in-javascript-d552ff4d2921

这样,直接页面不必存在于服务器上。 Javascript 将处理历史状态。

查看推荐人
$_SERVER['HTTP_REFERER']
这将显示用户来自的上一页(根据浏览器)。直接访问 url 时,这将是空的。

首页后独家使用POST页面

由于浏览器能够在提交表单等时显示 POST 页面。它只能通过键入 url 来显示 GET 请求。

在所有情况下,用户都可以欺骗服务器,就像他以预期的方式导航到页面一样。这意味着没有 100% 确定的方法来禁用直接访问,因为您不能信任客户端。

关于laravel - 我如何限制对任何路由的直接访问并抛出 404 异常,即使路由存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57692875/

相关文章:

exception-handling - Spring Integration - 在服务激活器组件中发生异常时写入错误队列

ruby-on-rails - 基于自连接的 Ruby on Rails 路由

php - 在 Lumen 中安装 FFMpeg

php - 如何使用 newQuery() 在 Laravel 中为表添加别名

php - 使用 Laravel Auth 伪造登录

exception - Azure表存储错误: "Unexpected response code for operation : 99"

javascript - 如何抛出 InvalidArgumentException JavaScript?

mysql - 寻找正确的查询

java - 获取FK异常涉及的特定列

asp.net - 从一个区域的 Action 重定向到 "root"区域中的 Action ?