在我的应用程序中可以创建目录,并且用户可以在该文件夹中存储文件。因此,假设我具有以下结构:
/public_html
/app
/assets
/documents
/folder_name
-list of files
我的目标是防止用户键入URL:
https://myapp.com/assets/documents
或
https://myapp.com/assets/documents/folder_name
并查看其中所有可用的文件或目录,是否有办法通过.htaccess防止这种情况发生?
答案 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
目录,但是更好的解决方案是将目录移出公共目录根。