2009-07-02 65 views
4

我想訪問的每個目錄除了/sandbox/WebDev/Projects阿帕奇:塊外上市的那些

阻止人們的所有目錄我嘗試這樣做:

<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

是啊,這是有道理的,但我希望會有一個更快的正則表達方式來加快速度。如果沒有其他答案,這肯定會起作用。 – 2009-07-02 23:55:01

3

這裏是你想要一個RegEx正確tested方式。

我建議你在Apache配置文件本身在使用,內.htaccess不是因爲它可能無法在一些默認的操作系統的阿帕奇CONFIGS(如Ubuntu的),除非你糾正的其他相關配置才能使其內.htaccess工作的正常工作(即AllowOverride ..等)

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

是的,這是一個OLD的問題,但這個答案可能會幫助別人.. :-)