【问题标题】:Password protect Laravel subfolder with htaccess使用 htaccess 密码保护 Laravel 子文件夹
【发布时间】:2014-10-28 11:18:45
【问题描述】:

在尝试使用 htaccess 对视图中的子文件夹进行密码保护时,我似乎不能简单地覆盖 Laravel 的路由。我将它和一个 .htpasswd 文件放在我想为其创建身份验证但没有效果的文件夹中。
这样做的原因是我希望为正在进行的项目提供“仅限客户的眼睛”文件夹,例如“example.com/clients/my-client/”。这些文件夹将只包含静态内容。

我尝试在公共中添加文件夹树,但这似乎也不起作用(我想需要声明公共内容以避免被路由?)。我宁愿坚持将这些客户页面作为视图。
想法? 在 Apache 上运行 Laravel 4.2。

【问题讨论】:

  • 它根本不工作。如果要阻止访问,请使用 Auth 类
  • 不能覆盖视图中的路由?我想我可以使用 Auth 类,但这需要我连接数据库,对吧?
  • 您可以在不连接数据库的情况下使用 Auth,但您必须编写 your own Auth provider 来查找文件或配置数组键。或者,如果您不使用站点中其他地方的数据库(因此不想连接到一个),您可以使用 SQLite 数据库驱动程序,它将数据库存储在一个易于访问的文件中。
  • 好的,很酷。感谢您的澄清。
  • @StaffanEstberg 没问题 - 如果您想接受它以供其他人发现问题,我已经写了我们的 cmets 作为答案。

标签: .htaccess authentication laravel directory password-protection


【解决方案1】:

由于 Laravel 进行路由的方式,所有 URI 实际上都是虚拟 URI,因此您不能将 .htaccess 文件放在任何目录中,因为它们实际上并不存在。

但是,您可以使用 Laravel 的身份验证系统来保护您的路由(使用基本身份验证或更传统的登录表单系统)。

如果您不想为了保护某些目录而将 Laravel 连接到数据库,有两种解决方案:

  • 您可以编写your own Auth provider,它只会在文件或配置数组键中查找详细信息。做到这一点并不是特别困难,尽管就您的目的而言,它可能看起来有点过头了。

  • 您可以使用 SQLite 数据库驱动程序,它将数据库存储在一个易于访问的文件中(app/database/),因此数据库至少与您的代码一起保存。

【讨论】:

    猜你喜欢
    • 2014-12-16
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2012-12-09
    相关资源
    最近更新 更多