这是我的目录结构
root
private
public
使用.htaccess和/或httpd.conf,我想将对私有文件夹的访问权限仅限于从根文件夹执行的代码。因此,无需外部访问私人文件夹中的任何内容。老实说,我尝试过很多选择,但似乎没什么用。
我的测试环境是XAMPP - 安装在我的本地计算机上。
修改
我遇到的一个问题是使用了错误的目录路径。我创建了一个简单的PHP页面,只有phpinfo()
<?php
phpinfo();
?>
在 PHP变量部分中,我查找了 _SERVER [“CONTEXT_DOCUMENT_ROOT”] 。我将此用作目录路径,然后添加私有(根目录中我想限制访问的文件夹)。因此,我在httpd.conf中完成的代码如下:
<Directory "E:/xampp/htdocs/home/private">
Order deny,allow
Deny from all
</Directory>
答案 0 :(得分:1)
使用Order deny,allow
和Deny from all
已足够
Order deny,allow
Deny from all
如果将其放在private
文件夹中的.htaccess中,则禁止从外部进行所有访问。
或者,您可以将它放在httpd.conf中的<Directory /path/to/root/private>
,这具有相同的效果
<Directory /path/to/root/private>
Order deny,allow
Deny from all
</Directory>
<强>更新强>:
根据Apache HTTP Server Tutorial: .htaccess files,你应该更喜欢httpd.conf而不是.htaccess文件
如果您有权访问httpd主服务器配置文件,则应该完全避免使用.htaccess文件。使用.htaccess文件会降低Apache http服务器的速度。您可以包含在.htaccess文件中的任何指令都可以在目录块中更好地设置,因为它具有相同的效果和更好的性能。