2011-12-30 5 views
45

最近私のプロジェクトを整理しています。私はルートディレクトリと6人の他の人にメインの.htaccessを持っています。それらのうちの5人がOptions -Indexesを実行しました。私は、ディレクトリの閲覧を許可しているので、メインポイントに移動させていませんでした。今は2つの.htaccessファイルしか持っていません。メインと私は本体のみの中から/systemにそれを実行したいhtaccess <Directory>すべてから拒否する

# Block External Access 
deny from all 

を保持している/systemで1。だから私は/システムの1つを削除して追加しました

# Block External Access 
<Directory "/system/"> 
deny from all 
</Directory> 

私のメイン.htaccessファイルに1を残して!

しかし、今、私は、サーバーが内部エラーや設定ミスが発生したため、リクエストを完了することができませんでした

内部サーバーエラーを取得します。

サーバー管理者webmaster @ localhostおよび に、エラーが発生した時刻と、エラーが発生した可能性のあるものを示した0​​をお知らせください。

このエラーの詳細については、サーバーエラー ログに記載されている場合があります。

のApache/2.2.17(Ubuntuの)サーバーは、10.0.1.5のポート80

ゴール/システム内のすべてのファイルを読み込むブロックすることで、それはサブディレクトリのですが、1つの.htaccessから、他のすべてのすべての閲覧を許可しますプロジェクト全体のファイル。どのように私はこれを修正することができますに関する任意のアイデア?私はいくつかのGoogle検索をしましたが、本当に何も出てきませんでした。

答えて

74

.htaccessのDirectory directiveは使用できません。しかし、あなたは/システムディレクトリに.htaccessファイルを作成し、その中で次のように配置する場合、あなたは同じ結果を得るでしょう

#place this in /system/.htaccess as you had before 
deny from all 
+3

うん。私は前に/システムに.htaccessを置いていました。プロジェクト全体に対して1つしか持たないようにしようとしていました。私はそうすることはできませんし、そうする必要がありますね。 Windowsユーザの場合は – Keverw

+0

です。ファイルエクスプローラではファイル名を削除できないため、ファイル名はテキストエディタの「.htaccess」にしてください。それは私にとっては問題でした –

1

あなたはルートディレクトリから使用することができます。

RewriteEngine On 
RewriteRule ^(?:system)\b.* /403.html 

または:

RewriteRule ^(?:system)\b.* /403.php # with header('HTTP/1.0 403 Forbidden'); 
9

RedirectMatchディレクティブを使用して、フォルダへのアクセスを拒否することもできます。

がフォルダへのアクセスを拒否するには、あなたはhtaccessファイルに次のように、RedirectMatchを使用することができます。

RedirectMatch 403 ^/folder/?$ 

これは、/フォルダ/例えばへの外部からのアクセスを禁止します:http://example.com/folder/は403禁断のエラーを返します。

は、フォルダ内のすべてのものへのアクセスを拒否するには、あなたはこれを使用することができます:これは、全体のフォルダなどへのアクセスをブロックします

RedirectMatch 403 ^/folder/.*$ 

http://example.com/folder/anyURIはクライアントに403エラー応答を返します。

関連する問題