Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess htaccess保护所有子文件夹&;文件夹_.htaccess - Fatal编程技术网

.htaccess htaccess保护所有子文件夹&;文件夹

.htaccess htaccess保护所有子文件夹&;文件夹,.htaccess,.htaccess,我有这样的情况: /storage index.php other scripts.php /files -files and folders- 我想拒绝对/files的所有文件和子文件夹的所有HTTP请求,但同时允许访问/storage并运行这些PHP脚本。我尝试了一些规则,但它们要么只保护文件列表,要么不允许访问所有/storage文件夹 .htaccess必须位于/files之外(因为这个文件夹是由PHPreadfile访问的,并且.htaccess可以访问)。我

我有这样的情况:

/storage
  index.php
  other scripts.php
  /files  
    -files and folders-
我想拒绝对
/files
的所有文件和子文件夹的所有HTTP请求,但同时允许访问
/storage
并运行这些PHP脚本。我尝试了一些规则,但它们要么只保护文件列表,要么不允许访问所有
/storage
文件夹


.htaccess
必须位于
/files
之外(因为这个文件夹是由PHP
readfile
访问的,并且
.htaccess
可以访问)。

我认为类似这样的东西,在父目录中(您可能需要使用完整路径)


命令拒绝,允许
全盘否定
一般来说,为了安全起见,我建议您只需将/files目录放在文档根目录之外。这样,如果.htaccess意外关闭或损坏,则不会最终暴露文件

编辑:


很抱歉,
指令仅在服务器配置中有效(您需要将其放入httpd.conf文件或等效文件中),而在.htaccess中无效。如果您确定要放入目录中的文件类型,您可以对各种文件类型使用
指令:但是需要将其放入
文件
目录中。(然后可能只是将其从PHP脚本中排除,尽管许多人已经忽略了隐藏文件)。

在root.htaccess文件中,即在
/storage
目录下放置以下行:

RewriteRule ^files/ - [R=404,L,NC]

这将向
files/
子目录下的所有HTTP请求抛出
404
,而您的
.php
文件将能够包含
files/
子目录下的文件。

它不起作用,我仍然可以访问文件,例如/files/image.jpg是可见的。htaccess正在读取吗?在发布之前,我已经在我的Linux、Mac和XAMPP安装上测试了上述规则,它在任何地方都有效。@anubhava我有一个htaccess问题,你能回答我的问题吗?看起来你是regex上最好的。
RewriteRule ^files/ - [R=404,L,NC]