2016-11-03 4 views
2

他のユーザーがブラウザのディレクトリに直接アクセスできないように、自分のルートにあるディレクトリへのアクセスを制限しようとしています。私は今実行中の問題です。たとえば、rootのページです。たとえば、index.phpがパスワードを要求していて、.htaccessがディレクトリのルートであり、ドメインのルートではありません。これにより、インデックスファイルがこれらのディレクトリのインクルードファイルにアクセスできなくなります。.htaccessがディレクトリアクセスを拒否する

ブラウザのアクセスからこれらのディレクトリをロックする簡単な方法は、ルートにあるファイルにアクセスし、パスワードの入力を求めずにルートページにアクセスできるようにすることです。私は彼らがサイトを見ることができる限り知りたいと思っていますが、誰かがサブディレクトリ内でコードを盗むために戸惑うと、ページを拒否し、ページにアクセスできるようにします。

私は、ブラウザの直接アクセスを制限したいディレクトリのそれぞれでこれを疲れました。

AuthType Basic 
AuthName "Administrator" 
AuthUserFile /home2/mesquiu0/.htpasswds./htpasswd 
Require valid-user 

Order Deny,Allow 
Deny From All 
Allow From 127.0.0.1 

答えて

1

あなたがする必要があるのは、ディレクトリのインデックスを作成無効にするには、余分な空行と次の行を追加します。詳細は

Options -Indexes 

参照ドキュメント:http://httpd.apache.org/docs/current/mod/core.html#options

+0

から私もこれに打撃を与えることができます。私はそれを以前に試して、キャッシュをクリアしてブラウザを再起動し、まだディレクトリ内のファイルにアクセスすることができました。私は+ Indexesを行ったかもしれませんが、それは理由かもしれません。提案していただきありがとうございます。 – Texan78

+0

これをディレクトリとルートの両方で試してみましょう。インデックスやファイルをルート上で右クリックしてリンクをクリックすると、そのディレクトリのファイルがブラウザに表示されます防ぐ。誰でもブラウザから直接サブディレクトリにアクセスしながら、ルートディレクトリやその他のサブディレクトリにあるファイルにアクセスできるようにします。 – Texan78

+0

更新、これはディレクトリへのアクセスを制限するために機能しますが、ファイルのソースを表示してリンクなどをクリックすると、スタイルシートが表示されます。そのディレクトリ内のファイルを表示することができます。ディレクトリ構造を表示しようとするとブロックされます。ディレクトリ内のファイルにアクセスできないようにする必要がありますが、ファイルが必要な特定のファイルにそのファイルを含めることができます。 – Texan78

1

ただ、スクリプトを許可しますphp、aspxなどにマッチします。

apache 2.2

AuthType Basic 
AuthName "Administrator" 
AuthUserFile /home2/mesquiu0/.htpasswds./htpasswd 
Require valid-user 

#Forbid access to any files except from localhost, because of Order Deny,Allow, Allow gets applied later. 
Order Deny,Allow 
Deny from all 
Allow from 127.0.0.1 

#Allow access to files matching index.php 
<Files index.php> 
    Order Allow,Deny 
    Allow from all 
</Files> 

Apache 2.4では、ルールが変更されており、正しい構文はDeny from allの代わりにRequire all deniedを使用することです。

これは、apacheのあなたの.htaccessファイルで2.4

AuthType Basic 
AuthName "Administrator" 
AuthUserFile /home2/mesquiu0/.htpasswds./htpasswd 
Require valid-user 

Require host 127.0.0.1 

#Allow access to files matching index.php 
<Files index.php> 
    Require all granted 
</Files> 
+0

提案してくれてありがとう、私はそのショットを与えるだろう。私のウェブホストはApache 2.2上にあります。これは通常、現在の状態を維持するのにかなり良いので驚くべきことです。ただ一つの小さな質問です。これをルートまたは各ディレクトリに配置する必要がありますか?複数のファイル拡張子がある場合は、新しいものを追加するには? – Texan78

+0

私はこれを各ディレクトリに入れて、ルートで試してみました。ディレクトリに置くと、インデックスにファイルがアクセスされず、ログインが要求されます。私がそれをルートに置くと、サイト全体がロックされます。私はただディレクトリをロックダウンする必要がありますが、私はそれらのディレクトリにログインするオプションを許可していると同時に、ルート内のファイルがそれらのサブディレクトリ内のファイルにアクセスできるようにします。 – Texan78

+0

今すぐご確認ください!それでも問題が解決しない場合は、ご質問の中でhtaccessの内容とディレクトリ構造を更新するように依頼します。 –

1

のためであるあなたは、例外を入れたい場合は、以下の行

はすべて

そして、これから拒否置きます。

はすべて

+0

これは、ファイルのインクルードを制限するため、機能しません。 – Texan78

関連する問題