我试图通过操纵URL来拒绝用户访问“site / includes”文件夹。 我不知道是否必须拒绝所有内容并手动设置允许的个别例外,如果我可以拒绝这个文件夹,或者是否有可以使用的重写功能。
具体示例:我不想通过在URL中输入“localhost / site / includes”来查看目录文件。
答案 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]
这将在内部将folder
到forbidden
错误页面的请求映射。
答案 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根目录中。