159

我试图site/includes通过操纵 URL 来拒绝用户访问该文件夹。

我不知道我是否必须拒绝所有内容并手动进行个别例外以允许,我是否可以拒绝这个文件夹,或者是否有可以使用的重写功能。

具体示例:我不想通过输入localhost/site/includesURL 来查看目录文件。

4

11 回答 11

237

创建site/includes/.htaccess文件并添加这一行:

Deny from all
于 2013-10-01T14:13:59.040 回答
79

您还可以使用拒绝访问文件夹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错误页面。

于 2016-06-28T06:24:41.390 回答
45

.htaccess您需要使用的文件中

Deny from  all

将其放入site/includes/.htaccess以使其特定于includes目录

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

Options -Indexes 
于 2013-10-01T14:16:24.940 回答
24

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

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

于 2015-12-22T11:18:25.757 回答
9

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

Deny from  all

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

Redirect /includes/ 404.html
于 2013-10-01T14:20:25.047 回答
8

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

于 2018-08-13T15:26:20.080 回答
4

Creating index.php, index.html, index.htm is not secure. Becuse, anyone can get access on your files within specified directory by guessing files name. E.g.: http://yoursite.com/includes/file.dat So, recommended method is creating a .htaccess file to deny all visitors ;). Have fun !!

于 2014-03-12T16:49:09.467 回答
4

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

于 2014-07-31T09:28:19.543 回答
3

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

例如:

<If "%{REQUEST_URI} =~ m#^/site/includes($|/)#">
    Require all denied
</If>
于 2021-10-25T00:30:09.787 回答
2

您可以通过这种方式动态执行此操作:

mkdir($dirname);
@touch($dirname . "/.htaccess");
  $f = fopen($dirname . "/.htaccess", "w");
  fwrite($f, "deny from all");
fclose($f);
于 2017-11-29T14:10:42.900 回答
0

由于某些我不明白的原因,创建文件夹/.htaccess 并从所有添加拒绝对我不起作用。我不知道为什么,它看起来很简单但没有用,而是将 RedirectMatch 403 ^/folder/.*$ 添加到根 htaccess 中。

于 2019-11-12T06:27:58.307 回答