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