如何允许脚本访问文件而不是Internet - Apache

时间:2012-03-17 16:54:50

标签: apache .htaccess permissions

我希望建立一个运行php的apache服务器。我希望可以从www.example.com/访问特定文件夹中的所有文件(例如/ site /)。但是,我希望通过www.example.com/data/看不到/ site / data /中的文件。我希望www.example.com/fun.php脚本能够读/写/ site / data /。通过预先设置和apache defalt文件来实现此目的的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

您需要将目录结构设置为与建议的略有不同。而是在以下目录下运行您的网站:

/site/html 

并将您的数据存储在以下目录中:

/site/data

将Apache配置为仅提供来自/ site / html而非/ site / data

的文件

或者如果您使用更传统的apache目录结构,则将您希望通过Web服务器公开访问的文件放在:

/var/www/html

以及您希望应用程序只能访问的私有数据文件:

/var/www/data

您的Apache conf文件将包含以下内容:

DocumentRoot "/var/www/html"

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

这样,/ var / www / data中的文件将无法公开访问,但这些文件仍然可以通过/ var / www / html /

中的php脚本访问

答案 1 :(得分:0)

将Apache目录列表放在/ site / data

下的.htaccess文件中,以禁用它
Options -Indexes