我需要拒绝直接访问某个目录 (*backend) 下的所有文件夹,但有一个例外。有一个目录 (*uploads) 必须通过浏览器访问。
布局可能是这样的:
*backend/
|-admin
|-system
|-themes
|-*uploads
我知道你可以通过在下方放置 htaccess 来拒绝所有访问后端内容如下:
Order Deny,Allow
Deny From All
另外,您可以通过放置不同的 htaccess 来覆盖此行为,在本例中为上传, 和:
Allow From All
这不起作用,因为我的脚本无法访问主题下的资源。正确的做法是什么访问控制组合看起来像什么?
[编辑]
我必须使用 htaccess 来实现这一点,修改 http.conf 不是一个选择。
修改 htaccess 如下,并在主题中添加一个文件,几乎可以达到预期的效果。问题是:文件下主题必须防止直接访问,但仍可向网站提供服务。
后端
#backend
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from xx.xx.xx.xx
上传
#uploads
Order Deny,Allow
Allow from all
主题
#themes
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from xx.xx.xx.xx
<Files *.*>
Order Deny,Allow
Allow From All #Here, I would need the files to not be accessible through browser.
</Files>
答案1
httpd.conf
在你的(或类似的配置文件)中尝试这个
<Location /backend>
Order deny,allow
deny from all
</Location>
<Location /backend/uploads>
Order allow,deny
allow from all
</Location>
如果您需要/backend
从服务器本身访问,您可以在上面的第一段中添加以下行以拒绝所有人。
allow from 127.0.0.1, <server-ext-ip>
还有一件事。为了以防万一,段落的顺序很重要。