Php 使用htaccess拒绝通过浏览器访问目录文件

Php 使用htaccess拒绝通过浏览器访问目录文件,php,Php,我想拒绝(所有未登录用户)从浏览器访问目录中的所有文件 只有登录的用户才能访问该文件夹中的文件。文件路径以登录的用户id存储在数据库中,因此当用户登录时,他只能查看或下载他的文件 因此,我不希望其他人(未登录)从浏览器访问文件夹和文件,其次,我希望用户能够仅查看文件夹中的文件 我想,第二件事我可以用php做一些条件检查,但对于第一件事,有人能告诉我要实现的htaccess规则吗 谢谢您可以使用.htaccess禁用默认目录浏览 打开你的.htacces文件 寻找选项索引 如果存在选项索引,请修

我想拒绝(所有未登录用户)从浏览器访问目录中的所有文件

只有登录的用户才能访问该文件夹中的文件。文件路径以登录的用户id存储在数据库中,因此当用户登录时,他只能查看或下载他的文件

因此,我不希望其他人(未登录)从浏览器访问文件夹和文件,其次,我希望用户能够仅查看文件夹中的文件

我想,第二件事我可以用php做一些条件检查,但对于第一件事,有人能告诉我要实现的htaccess规则吗


谢谢

您可以使用.htaccess禁用默认目录浏览

  • 打开你的.htacces文件

  • 寻找选项索引

  • 如果存在选项索引,请修改它 到选项-索引或其他添加 选项-将索引作为新行

    现在应该禁用目录浏览功能


有关.htaccess用户访问的部分,您可以查看.htaccess密码生成器

有一篇文章详细介绍了Apache web服务器的访问控制功能:

最简单的变体如下所示:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
顺便说一句,这部分:

只有已登录的用户才能访问其 该文件夹中的文件。文件路径 存储在数据库中的 已登录用户id,以便 用户登录后,可以查看或下载 只有他的档案

将需要为每个文件夹创建单独的密码文件,或者需要一些额外的脚本

这种方法存在一些已知问题:

  • 基本身份验证方案以明文形式发送密码,如果您的站点可以通过HTTP(而不是HTTPS)访问,这是不好的。还有摘要身份验证类型,但浏览器支持存在一些问题

  • 注销操作将需要关闭浏览器

一般来说,我建议:

  • Apache内置功能—用于简单的访问控制,无需详细的用户权限/权限配置

  • 通过一些web编程工具进行自定义访问控制-用于具有假定权限/权限配置的身份验证方案。有许多web开发框架提供访问控制功能


不要向他们显示存储文件的实际文件夹路径

使用php文件获取可下载的内容

例如:-download.php?file=mydocument.doc

缺点:

  • 可能很慢
  • 没有下载简历支持(我猜)

  • 感谢您的回复,我发现了一个工作正常的代码片段。 我在.htaccess文件中插入了以下行:

    订单拒绝,允许
    全盘否定