apache - htaccess - 阻止访问目录但允许访问特定目录中的文件
问题描述
在我的服务器中,我有一个名为 的文件夹customers
,其中包含子文件夹[uid]
( /customers/[uid]
),其中uid
是分配给每个客户的唯一标识符。每个文件夹中都有其他文件夹/customers/[uid]
。
其中有一个名为的文件夹images
,顾名思义,其中包含图像。
我想配置 .htaccess 以便用户只能直接访问其中的文件,/customers/[uid]/images
但不允许用户访问任何其他文件夹或任何目录列表。
因为我对.htaccess语法不是很熟悉,所以我尝试在网上搜索了一些答案,但我仍然很困惑。特别是RewriteRule
在我的.htaccess
. 我不确定在哪里以及如何添加更多来完成我想要的。
这就是我.htaccess
现在的样子。
DirectoryIndex test.php
<Files "database.ini">
Order Allow,Deny
Deny from all
</Files>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
</IfModule>
我使用的是 VPS 主机,默认情况下,目录索引是启用的。所以现在如果我尝试访问/customers/user
它会给我一个文件夹列表,我可以在其中继续访问其他文件夹和文件
我试过Options -Indexes
把<IfModule>
. 之后,我确实无法访问其他目录,但我无法再访问任何目录中的任何文件。
解决方案
你要做的是为每个用户目录创建一个 .htaccess 文件,并在其中允许访问 ./images 所以你将拥有
/customers/[uid1]/.htaccess
/customers/[uid2]/.htaccess
... ETC
在每个 .htaccess 中,您将拥有:
Allow from all
推荐阅读
- angular - 在响应时删除 Angular Material 分页
- jquery - 如果鼠标快速移动,则 Jquery 悬停问题
- python - 如何从全局类范围访问 self.function
- android - DialogFragment.dismiss() leaves keyboard on screen
- java - 如何在自定义 getter 中序列化 JSON 对象?
- javascript - Mobile click on body does not fire
- sas - ODBC 和 Netezza 引擎之间的区别
- r - position_dodge on geom_text on dodged barplot
- javascript - Custom JSX to React intl formattedMessage
- javascript - localstorage 没有在角度服务中刷新