web-dev-qa-db-ja.com

.htaccess内の特定のフォルダへのアクセスを拒否する

URLを操作して、 "site/includes"フォルダへのアクセスをユーザーから拒否しようとしています。このフォルダを1つだけ拒否できる場合、または使用できる書き換え機能がある場合は、すべてを拒否し、手動で許可するように個別の例外を設定する必要があるかどうかはわかりません。

具体例:URLに「localhost/site/includes」と入力してディレクトリファイルを見たくありません。

101
Zach

site/includes/.htaccessファイルを作成して次の行を追加します。

Deny from all
159
anubhava

.htaccessファイルでは、使用する必要があります

Deny from  all

これをincludesディレクトリに固有のものにするには、これをsite/includes/.htaccessに入れます。

ディレクトリファイルの一覧表示を許可したくない場合は、次のものを使用できます。

Options -Indexes 
35
Andy

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エラーページにマッピングします。

29
starkeen

ディレクトリを非常に安全に設定し、すべての種類のファイルへのアクセスを拒否します。以下は、.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>

からのソース 保護されたディレクトリ内の特定のファイルタイプへのアクセスを許可する

13
arthankamal

フォルダの.htaccessファイルを作成することができます。

Deny from  all

または、カスタムの404ページにリダイレクトすることもできます。

Redirect /includes/ 404.html
8
Marvin

また、このIndexIgnore *をルートの.htaccessファイルに配置して、サブディレクトリを含むすべてのWebサイトディレクトリのファイルリストを無効にすることもできます。

4
ravisoni

制限したいフォルダに.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 出典。

2
The Godfather

Index.php、index.html、index.htmを作成するのは安全ではありません。つまり、ファイル名を推測することで、誰でも指定されたディレクトリ内のファイルにアクセスできます。例: http://yoursite.com/includes/file.dat だから、すべての訪問者を拒否するために.htaccessファイルを作成することをお勧めします。楽しむ !!

2
Meraj

そのように動的にこれを行うことができます。

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