防止从外部访问执行代码

时间:2013-04-16 14:47:53

标签: apache .htaccess

这是我的目录结构

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>

1 个答案:

答案 0 :(得分:1)

使用Order deny,allowDeny 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文件中的任何指令都可以在目录块中更好地设置,因为它具有相同的效果和更好的性能。