拒绝访问.htaccess 中的一个特定文件夹

我试图通过操作 URL 来阻止用户访问 site/includes文件夹。

我不知道是否我必须拒绝一切,手动使个别异常允许,如果我只能拒绝这一个文件夹,或者如果有一个重写函数,可以使用。

具体例子: 我不想通过在 URL 中键入 localhost/site/includes来查看目录文件。

301475 次浏览

创建 site/includes/.htaccess文件并添加以下代码行:

Deny from all

.htaccess文件中,您需要使用

Deny from  all

将其放在 site/includes/.htaccess中,使其特定于 includes目录

如果您只是希望不允许列出您可以使用的目录文件

Options -Indexes

您可以为该文件夹创建一个. htaccess 文件,该文件应该拒绝使用

Deny from  all

或者可以重定向到自定义404页面

Redirect /includes/ 404.html

创建 index.php、 index.html、 index.htm 是不安全的。因为,任何人都可以通过猜测文件名来访问指定目录中的文件。例如: < a href = “ http://yoursite.com/include/file.dat”rel = “ nofollow”> http://yoursite.com/includes/file.dat 因此,推荐的方法是创建一个.htaccess 文件来拒绝所有访问者;)!

您还可以将这个 IndexIgnore *放在根目录中。Htaccess 文件禁用所有网站目录(包括子目录)的文件列表

我们将目录设置为非常安全,拒绝所有文件类型的访问。下面是要插入到。Htaccess 文件。

Order Allow,Deny
Deny from all

由于我们现在已经设置了安全性,因此现在希望允许访问所需的文件类型。为此,请将下面的代码添加到。你刚刚插入的安全代码下的 htaccess 文件。

<FilesMatch "\.(jpg|gif|png|php)$">
Order Deny,Allow
Allow from all
</FilesMatch>

您的最终 .htaccess文件将看起来像

Order Allow,Deny
Deny from all


<FilesMatch "\.(jpg|gif|png|php)$">
Order Deny,Allow
Allow from all
</FilesMatch>

来自 允许访问受保护目录中的特定文件类型

还可以使用 RedirectMatch拒绝对文件夹的访问

向 htaccess 添加以下代码行

RedirectMatch 403 ^/folder/?$

这将返回一个文件夹的 403 forbidden错误,即: http://example.com/folder/,但它不阻止访问该文件夹中的文件和文件夹,如果你想阻止文件夹中的所有内容,那么只需将正则表达式模式改为 ^/folder/.*$

另一个选择是 mod-rewrite 如果启用了 url-rewrting-module,您可以在 root/.htaccss中使用如下内容:

RewriteEngine on


RewriteRule ^folder/?$ - [F,L]

这将在内部将对 folder的请求映射到 forbidden错误页面。

你可以这样动态地做:

mkdir($dirname);
@touch($dirname . "/.htaccess");
$f = fopen($dirname . "/.htaccess", "w");
fwrite($f, "deny from all");
fclose($f);

只需将.htaccess 放入要限制的文件夹中

## no access to this folder


# Apache 2.4
<IfModule mod_authz_core.c>
Require all denied
</IfModule>


# Apache 2.2
<IfModule !mod_authz_core.c>
Order Allow,Deny
Deny from all
</IfModule>

资料来源: 螳螂资料来源。

由于某些我不理解的原因,创建文件夹/。Htaccess 和加入拒绝从所有失败了我的工作。我不知道为什么,它似乎很简单,但不工作,添加重定向匹配403 ^/文件夹/。* $to the root htaccess 工作了。

在 Apache 2.4上,您可以在根 .htaccess文件中使用 Apache <If>表达式来阻止对这个特定子目录及其中所有内容的直接访问。

例如:

<If "%{REQUEST_URI} =~ m#^/site/includes($|/)#">
Require all denied
</If>