拒绝使用 htaccess 列出目录
我有一个文件夹,例如: /public_html/Davood/
文件夹中的子文件夹过多,例如: /public_html/Davood/Test1/
、 /public_html/Davood/Test1/Test/
、 /public_html/Davood /Test2/
,...
我想将 htaccess 文件添加到 /public_html/Davood/
中,以拒绝 /Davood
和子目录中的 DirectoryListing文件夹。有可能吗?
I have a folder, for example : /public_html/Davood/
and too many sub folder in folder, for example : /public_html/Davood/Test1/
, /public_html/Davood/Test1/Test/
, /public_html/Davood/Test2/
, ...
I want add a htaccess file into /public_html/Davood/
To deny DirectoryListing in /Davood
and sub folders. It's possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
选项-索引应该能够防止目录列表。
如果您使用 .htaccess 文件,请确保您的主 apache 配置文件。
Options -Indexes should work to prevent directory listings.
If you are using a .htaccess file make sure you have at least the "allowoverride options" setting in your main apache config file.
尝试将其添加到该目录中的
.htaccess
文件中。此包含更多信息。
Try adding this to the
.htaccess
file in that directory.This has more information.
如果
Options -Indexes
不能像 Bryan Drewery 建议的那样工作,您可以编写一个递归方法来创建空白的 index.php 文件。将其放在您想要保护的基本文件夹中,您可以将其命名为任何名称(我建议使用index.php)
这些空白index.php文件可以轻松删除或覆盖,并且它们将使您的目录无法列出。
If
Options -Indexes
does not work as Bryan Drewery suggested, you could write a recursive method to create blank index.php files.Place this inside of your base folder you wish to protect, you can name it whatever (I would recommend index.php)
These blank index.php files can be easily deleted or overwritten, and they'll keep your directories from being listable.
要显示禁止错误,请在 .htaccess 文件中包含这些行:
如果我们想要对文件进行索引并显示一些信息,则使用:
如果我们希望不显示某些特定扩展名,则:
For showing Forbidden error then include these lines in your .htaccess file:
If we want to index our files and showing them with some information, then use:
If we want for some particular extension not to show, then:
Options -Indexes 非常适合我,
这里是
.htaccess
文件:之前:
之后:
Options -Indexes perfectly works for me ,
here is
.htaccess
file :Before :
After :
有两种方法:
使用.htaccess:
Options -Indexes
创建空白index.html
There are two ways :
using .htaccess :
Options -Indexes
create blank index.html
我必须尝试在我想要禁止目录索引列表的当前目录中创建 .htaccess 文件。但是,抱歉,我不知道 .htaccess 代码中的递归。
尝试一下。
I have to try create .htaccess file that current directory that i want to disallow directory index listing. But, sorry i don't know about recursive in .htaccess code.
Try it.
同意
如果主服务器配置为允许选项覆盖,则应该可以工作,但如果没有,这将隐藏列表中的所有文件(因此每个目录都显示为空):
Agree that
should work if the main server is configured to allow option overrides, but if not, this will hide all files from the listing (so every directory appears empty):
Options -Indexes 对受保护的目录返回 403 禁止错误。通过在 htaccess 中使用以下重定向可以实现相同的行为:
这将为 example.com/folder/ 返回禁止错误。
您还可以使用 mod-rewrite 来禁止对文件夹的请求。
如果您的 htaccess 位于您要禁止的文件夹中,请将 RewriteRule 的模式从 ^folder/?$ 更改为 ^$ 。
Options -Indexes returns a 403 forbidden error for a protected directory. The same behaviour can be achived by using the following Redirect in htaccess :
This will return a forbidden error for example.com/folder/ .
You can also use mod-rewrite to forbid a request for folder.
If your htaccess is in the folder that you are going to forbid , change RewriteRule's pattern from ^folder/?$ to ^$ .
首先,您需要一个 .htaccess 文件来防止目录列出。如果您的服务器上未启用 .htaccess,请启用它。在 apache 配置文件或虚拟主机文件中:
其中 /var/www/html 是根目录。这将允许在您的服务器上使用 .htaccess 文件。在 .htaccess 文件内,在顶部添加以下内容:
这将阻止目录的浏览/索引。
First, you need a .htaccess file to prevent directory listing. If .htaccess is not enabled on your server, enable it. Inside the apache configuration file or your virtual host file:
where /var/www/html is the root directory. This will enable the use of .htaccess file on your server. Inside the .htaccess file add the following at the top:
This will prevent the browsing/indexation of directories.