Apache:阻止除列出的目录之外的所有目录

时间:2009-07-02 22:11:41

标签: regex directory apache2 access-control

我想阻止人们访问除/sandbox/WebDev/Projects

以外的所有目录

我试过了:

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

但它给出了500错误。

2 个答案:

答案 0 :(得分:3)

tested为您所需的RegEx方式。

我建议您在Apache配置文件中使用它,而不是.htaccess,因为它可能无法在某些默认操作系统的Ap​​ache配置(例如Ubuntu&#39; s)上正常工作,除非您更正了其他相关配置,使其在.htaccess内工作(即AllowOverride ..等)

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

是的,这是OLD个问题,但这个答案可能对某人有所帮助..: - )

答案 1 :(得分: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>