[英]Deny access to one specific folder in .htaccess
我试图通过操纵 URL 来拒绝用户访问site/includes
文件夹。
我不知道我是否必须拒绝所有内容并手动设置个别例外以允许,我是否可以拒绝这个文件夹,或者是否有可以使用的重写功能。
具体示例:我不想通过在 URL 中键入localhost/site/includes
来查看目录文件。
创建site/includes/.htaccess
文件并添加以下行:
Deny from all
您还可以使用RedirectMatch
拒绝访问文件夹
将以下行添加到 htaccess
RedirectMatch 403 ^/folder/?$
这将为文件夹返回403 forbidden
错误,即: http://example.com/folder/
: http://example.com/folder/
但它不会阻止访问该文件夹内的文件和文件夹,如果您想阻止文件夹内的所有内容,则只需更改正则表达式模式到^/folder/.*$
。
另一个选项是mod-rewrite
如果启用了url-rewrting-module
,您可以在root/.htaccss
使用类似以下root/.htaccss
:
RewriteEngine on
RewriteRule ^folder/?$ - [F,L]
这将在内部将对该folder
的请求映射到forbidden
错误页面。
在.htaccess
文件中,您需要使用
Deny from all
把它放在site/includes/.htaccess
以使其特定于includes
目录
如果您只想禁止列出可以使用的目录文件
Options -Indexes
我们将目录设置为非常安全,拒绝所有文件类型的访问。 下面是您要插入到 .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>
您可以为该文件夹创建一个 .htaccess 文件,该文件应该拒绝访问
Deny from all
或者您可以重定向到自定义 404 页面
Redirect /includes/ 404.html
只需将 .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来源。
创建 index.php、index.html、index.htm 是不安全的。 因为,任何人都可以通过猜测文件名来访问您指定目录中的文件。 例如:http: //yoursite.com/includes/file.dat因此,推荐的方法是创建一个 .htaccess 文件来拒绝所有访问者;)。 玩得开心!!
您还可以将此IndexIgnore *
放在根 .htaccess 文件中,以禁用所有网站目录(包括子目录)的文件列表
您可以通过这种方式动态执行此操作:
mkdir($dirname);
@touch($dirname . "/.htaccess");
$f = fopen($dirname . "/.htaccess", "w");
fwrite($f, "deny from all");
fclose($f);
在 Apache 2.4 上,您可以在根.htaccess
文件中使用 Apache <If>
表达式来阻止直接访问此特定子目录及其中的所有内容。
例如:
<If "%{REQUEST_URI} =~ m#^/site/includes($|/)#">
Require all denied
</If>
由于某些我不明白的原因,创建文件夹/.htaccess 并从所有添加拒绝对我不起作用。 我不知道为什么,这看起来很简单但不起作用,将 RedirectMatch 403 ^/folder/.*$ 添加到根 htaccess 反而起作用了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.