2009-06-29 7 views
3

は、私は時々私はAJAXを介してファイルをロードし、私も一つの問題を持って、私は物理的に.htaccessで1つのディレクトリ名以外のすべてのディレクトリ名を拒否することはできますか?

Options -Indexes 
Order deny,allow 
deny from all 

(彼らは唯一のシステムによってロードされなければならない)、ブラウザからファイルにアクセスしてからユーザーを防ぐため、この.htaccessのファイルを持っていますそこに私は403禁じられます。私は、Apacheのmod_accessの経験はほとんどありません。すべてのAJAXベースのファイルがajaxという1つのディレクトリにあるので、私はdirectory directiveで読んできました。

しかし、事は私はajaxと私の正規表現のスキルが欠けているものを除いてすべてのディレクトリへのアクセスを拒否する必要があります。

ディレクトリ構造の例は次のとおりです。

plugins/inventory/ajax 
plugins/inventory/controller 
plugins/inventory/view 

plugins/packages/ajax 
plugins/packages/controller 
plugins/packages/view 

.htaccessファイルは、pluginsディレクトリにあります。

答えて

3

これを最初に実行する必要があるのは、プロジェクトアーキテクチャの失敗のようなものです。 Webにアクセスできないはずのスクリプトファイルは、最初はDocumentRoot内にあるべきではありません。言っ

、これはおそらく動作します。その上で、先端のための

RewriteEngine on 
<DirectoryMatch "/(?!.*/ajax$)"> 
    Order deny,allow 
    Deny from all 
</DirectoryMatch> 
+0

おかげで、この理由は、人々が自動的にシステムにロードされているプラ​​グインを書いているとの中に落下することができるはずということですロケーション。 –

+0

うん、面白い。だから、彼らはDocumentRootの中にいる必要があります.HTTP PUTなどで公開しているからです。 – chaos

+0

私はあなたの意見を得て、プラグインを別の方法で実装することは可能かもしれません。これらは、システム開発者がシステムのアドオンをプログラムするのに使用できるディレクトリです。 –

関連する問題