0

这是我的目录结构

root
    private
    public

使用 .htaccess 和/或 httpd.conf,我想将对私有文件夹的访问限制为仅从根文件夹执行的代码。因此,无法从外部访问私人文件夹中的任何内容。老实说,我尝试了很多选择,但似乎没有任何效果。

我的测试环境是 XAMPP - 安装在我的本地机器上。

编辑

我遇到的问题之一是使用了错误的目录路径。我只用 phpinfo() 创建了一个简单的 PHP 页面

<?php
phpinfo();
?>

PHP 变量部分,我查找了_SERVER["CONTEXT_DOCUMENT_ROOT"]。我将它用于目录路径,然后添加私有(我想限制访问的根目录中的文件夹)。因此,我在 httpd.conf 中完成的代码如下:

<Directory "E:/xampp/htdocs/home/private">
    Order deny,allow
    Deny from all
</Directory>
4

1 回答 1

1

使用Order deny,allowandDeny from all应该已经足够了

Order deny,allow
Deny from all

如果你把它放在private文件夹中的 .htaccess 中,所有来自外部的访问都将被禁止。

或者,你可以把它放在<Directory /path/to/root/private>httpd.conf中,效果一样

<Directory /path/to/root/private>
    Order deny,allow
    Deny from all
</Directory>

更新

根据Apache HTTP Server Tutorial: .htaccess files你应该更喜欢 httpd.conf 而不是 .htaccess files

如果您有权访问 httpd 主服务器配置文件,则应完全避免使用 .htaccess 文件。使用 .htaccess 文件会降低 Apache http 服务器的速度。您可以包含在 .htaccess 文件中的任何指令都最好设置在 Directory 块中,因为它具有相同的效果并具有更好的性能。

于 2013-04-16T15:21:15.263 回答