2009-07-02 12 views
4
私は /sandbox/WebDev/Projects

は、Apacheは:ブロックが記載されているもの

を除くすべてのディレクトリにアクセスする人をブロックしたい

を除くすべてのディレクトリには、私はこの試みた:

<Directory ^/(?<!sandbox|Projects|WebDev)+(/.*)> 
    Order Deny,Allow 
    Deny from all 
</Directory>

を、それは500エラーが発生しました。

答えて

2

標準的な方法のようなものである:ここでは

<Directory /> 
    Order Deny,Allow 
    Deny from all 
</Directory> 

<Directory /sandbox> 
    Order Deny,Allow 
    Allow from all 
</Directory> 

<Directory /WebDev> 
    Order Deny,Allow 
    Allow from all 
</Directory> 

<Directory /Projects> 
    Order Deny,Allow 
    Allow from all 
</Directory> 
+0

ええ、それは理にかなっているが、私はそこだろうと期待していましたより速くそれを追加するためのより速い正規表現。それ以外の回答がない場合は、これが確実に機能します。 –

+0

でも動作します!ありがとう。 –

3

あなたがRegExにしたい右tested方法です。

あなたはそれが.htaccess以内に動作させるために他の関連する構成を修正もしない限り、それは(例えばUbuntuのような)いくつかのデフォルトOSのApacheのコンフィグで正しく動作しない場合がありますように私はいない.htaccess以内に、あなたがApacheの設定ファイル自体でこれを使用することをお勧め(すなわちAllowOverride ...など)

<Directory /> 
      Order allow,deny 
      deny from all 
    </Directory> 
    <Directory ~ "/(sandbox|Projects|WebDev)"> 
      Order allow,deny 
      allow from all 
    </Directory> 

はい、それはOLD質問ですが、この答えは、誰かを助けるかもしれない... :-)

関連する問題