URLを操作して、 "site/includes"フォルダへのアクセスをユーザーから拒否しようとしています。このフォルダを1つだけ拒否できる場合、または使用できる書き換え機能がある場合は、すべてを拒否し、手動で許可するように個別の例外を設定する必要があるかどうかはわかりません。
具体例:URLに「localhost/site/includes」と入力してディレクトリファイルを見たくありません。
site/includes/.htaccess
ファイルを作成して次の行を追加します。
Deny from all
.htaccess
ファイルでは、使用する必要があります
Deny from all
これをincludes
ディレクトリに固有のものにするには、これをsite/includes/.htaccess
に入れます。
ディレクトリファイルの一覧表示を許可したくない場合は、次のものを使用できます。
Options -Indexes
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
エラーページにマッピングします。
ディレクトリを非常に安全に設定し、すべての種類のファイルへのアクセスを拒否します。以下は、.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
また、このIndexIgnore *
をルートの.htaccessファイルに配置して、サブディレクトリを含むすべてのWebサイトディレクトリのファイルリストを無効にすることもできます。
制限したいフォルダに.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ファイルを作成することをお勧めします。楽しむ !!
そのように動的にこれを行うことができます。
mkdir($dirname);
@touch($dirname . "/.htaccess");
$f = fopen($dirname . "/.htaccess", "w");
fwrite($f, "deny from all");
fclose($f);