禁止访问特定目录路径

时间:2020-02-25 09:37:42

标签: php .htaccess

在我的应用程序中可以创建目录,并且用户可以在该文件夹中存储文件。因此,假设我具有以下结构:

/public_html
    /app
        /assets 
            /documents
                /folder_name 
                -list of files

我的目标是防止用户键入URL:

https://myapp.com/assets/documents

https://myapp.com/assets/documents/folder_name

并查看其中所有可用的文件或目录,是否有办法通过.htaccess防止这种情况发生?

2 个答案:

答案 0 :(得分:2)

将.htaccess放入该文件夹,然后添加

中的

Deny from all

或者如果您想将指令动态地应用于文件夹(如果您有权访问Apache配置):

<DirectoryMatch "^/public_html/app/assets/documents/(.+)/" >
    Order Allow,Deny
    Deny from all
</DirectoryMatch>

或在folder_name中:

<DirectoryMatch "^/public_html/app/assets/documents/folder_name(.+)/" >
    Order Allow,Deny
    Deny from all
</DirectoryMatch>

其中一种方法是在文件夹中生成空白的index.php。

答案 1 :(得分:2)

如果只想阻止目录列表,可以输入:

Options -Indexes

位于资产根目录中的.htaccess文件中。您的虚拟主机/服务器配置必须设置AllowOverride Options才能运行。

如果您希望阻止访问文件,可以使用<Files文件中允许的.htaccess目录,但是更好的解决方案是将目录移出公共目录根。