Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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,如果以前有人问过这个问题,我很抱歉。 我有一个文件夹,看起来像:project/version/download.zip 但问题是我有多个项目文件夹和多个版本文件夹 其中我有一些文件,我不希望任何人在版本文件夹中访问,但我希望允许用户访问download.zip 我的问题是如何阻止对其他文件的访问,但允许用户下载zip? 至于文件只是一种文件类型 或者我应该将zip文件转移到其他文件夹中,并将deny from all放在项目文件夹中吗 请建议^^谢谢如果您的zip文件所在的文件夹,请尝试添加包

如果以前有人问过这个问题,我很抱歉。 我有一个文件夹,看起来像:project/version/download.zip 但问题是我有多个项目文件夹和多个版本文件夹 其中我有一些文件,我不希望任何人在版本文件夹中访问,但我希望允许用户访问download.zip

我的问题是如何阻止对其他文件的访问,但允许用户下载zip? 至于文件只是一种文件类型

或者我应该将zip文件转移到其他文件夹中,并将deny from all放在项目文件夹中吗


请建议^^谢谢

如果您的zip文件所在的文件夹,请尝试添加包含以下内容的
.htaccess
文件:

Order Allow,Deny 
Deny from all 
<FilesMatch "\.zip$">
Order Deny,Allow
    Allow from all
</FilesMatch>
命令允许,拒绝
全盘否定
命令拒绝,允许
通融

假设您的版本文件夹中还没有.htaccess文件。如果您启用了mod_rewrite,您应该能够执行以下操作:

RewriteCond %{REQUEST_URI} ^/(version|version1337|version9001)
RewriteCond %{REQUEST_URI} !(download\.zip|grumpycat\.png)$
RewriteRule ^ [F,L]
首先将.htaccess文件添加到版本文件夹。将以下内容添加到该文件中

RewriteCond %{REQUEST_URI} !(download\.zip|grumpycat\.png)$
RewriteRule ^ [F,L]
由于.htaccess文件位于版本文件夹中,因此所有文件名都会自动以
version/
作为前缀。它将阻止访问该文件夹中的所有文件,以及不带.htaccess的子文件夹(download.zip和grumpycat.png除外)。您可以将此文件复制并粘贴到要限制访问权限的任何子文件夹中


或者,如果稍微修改代码,可以在文档根目录中创建.htaccess。您可以这样做:

RewriteCond %{REQUEST_URI} ^/(version|version1337|version9001)
RewriteCond %{REQUEST_URI} !(download\.zip|grumpycat\.png)$
RewriteRule ^ [F,L]
现在,请求的url必须以version、version1337或version9001开头,并且不能以这些文件名中的一个结束,以触发禁止的错误。否则将显示该文件