htaccess - 阻止访问目录但允许访问特定目录中的文件
htaccess - Block access to a directory but allow access to files in a specific directory
在我的服务器中,我有一个名为 customers
的文件夹,其中包含子文件夹 [uid]
(/customers/[uid]
),其中 uid
是分配给每个子文件夹的唯一标识符顾客。每个 /customers/[uid]
.
中还有其他文件夹
其中有一个名为 images
的文件夹,顾名思义,它包含图像。
我想配置 .htaccess 以便用户只能直接访问 /customers/[uid]/images
中的文件,但不允许用户访问任何其他文件夹或任何目录列表。
因为我对.htaccess的语法不是很熟悉,所以尝试在网上搜索了一些答案,但还是一头雾水。特别是考虑到我的 .htaccess
中已经有一个 RewriteRule
。我不确定在哪里以及如何添加更多内容来完成我想要的。
这就是我的 .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 ^(.*)$ .php [L]
</IfModule>
我正在使用 VPS 主机,默认情况下目录索引是启用的。所以现在如果我尝试访问 /customers/user
它会给我一个文件夹列表,我可以在其中继续访问其他文件夹和文件
我试过将 Options -Indexes
放在 <IfModule>
中。之后,我确实无法访问其他目录,但我无法再访问任何目录中的任何文件。
您要做的是为每个用户目录制作一个 .htaccess 文件,并在其中允许访问 ./images
所以你会有
/customers/[uid1]/.htaccess
/customers/[uid2]/.htaccess
...等等
在每个 .htaccess 中,您将拥有:
Allow from all
在我的服务器中,我有一个名为 customers
的文件夹,其中包含子文件夹 [uid]
(/customers/[uid]
),其中 uid
是分配给每个子文件夹的唯一标识符顾客。每个 /customers/[uid]
.
其中有一个名为 images
的文件夹,顾名思义,它包含图像。
我想配置 .htaccess 以便用户只能直接访问 /customers/[uid]/images
中的文件,但不允许用户访问任何其他文件夹或任何目录列表。
因为我对.htaccess的语法不是很熟悉,所以尝试在网上搜索了一些答案,但还是一头雾水。特别是考虑到我的 .htaccess
中已经有一个 RewriteRule
。我不确定在哪里以及如何添加更多内容来完成我想要的。
这就是我的 .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 ^(.*)$ .php [L]
</IfModule>
我正在使用 VPS 主机,默认情况下目录索引是启用的。所以现在如果我尝试访问 /customers/user
它会给我一个文件夹列表,我可以在其中继续访问其他文件夹和文件
我试过将 Options -Indexes
放在 <IfModule>
中。之后,我确实无法访问其他目录,但我无法再访问任何目录中的任何文件。
您要做的是为每个用户目录制作一个 .htaccess 文件,并在其中允许访问 ./images 所以你会有
/customers/[uid1]/.htaccess
/customers/[uid2]/.htaccess
...等等
在每个 .htaccess 中,您将拥有:
Allow from all