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

时间:2013-10-01 14:11:55

标签: apache .htaccess

我试图通过操纵URL来拒绝用户访问“site / includes”文件夹。 我不知道是否必须拒绝所有内容并手动设置允许的个别例外,如果我可以拒绝这个文件夹,或者是否有可以使用的重写功能。

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

10 个答案:

答案 0 :(得分:159)

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

Deny from all

答案 1 :(得分:34)

.htaccess文件中,您需要使用

Deny from  all

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

如果您只想禁止目录文件列表,可以使用

Options -Indexes 

答案 2 :(得分:29)

您还可以使用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]

这将在内部将folderforbidden错误页面的请求映射。

答案 3 :(得分:13)

我们将目录设置为非常安全,拒绝所有文件类型的访问。下面是您要插入.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>

来自Allow access to specific file types in a protected directory

的来源

答案 4 :(得分:8)

您可以为该文件夹创建一个.htaccess文件,该文件应该被拒绝访问

Deny from  all

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

Redirect /includes/ 404.html

答案 5 :(得分:4)

您也可以将此IndexIgnore *放在根.htaccess文件中,以禁用所有网站目录(包括子目录)的文件列表

答案 6 :(得分:2)

创建index.php,index.html,index.htm并不安全。但是,任何人都可以通过猜测文件名来访问指定目录中的文件。例如:http://yoursite.com/includes/file.dat 因此,推荐的方法是创建一个.htaccess文件来拒绝所有访问者;)。玩得开心!!

答案 7 :(得分:2)

您可以这样动态地执行此操作:

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

答案 8 :(得分:2)

只需将.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>

来源:MantisBT个来源。

答案 9 :(得分:0)

由于某些我不了解的原因,创建文件夹/.htaccess并添加“全部拒绝”对我而言无效。我不知道为什么,这看起来很简单,但是没有用,而是将RedirectMatch 403 ^ / folder /.*$添加到htaccess根目录中。