2009-07-02 55 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的问题,但这个答案可能会帮助别人.. :-)