我的主机为我提供了两个文件夹供我使用, /home/public/这是页面去的地方, /home/private/是我个人使用的。 我想让PHP创build一个文件,这个文件可以从机器上读取,但不能通过互联网上的任何人读取。 公用文件夹中的文件导致此问题。 我想到了由apache组织拥有的文件,但我不是它的成员。 如果我可以将文件放在我的私人目录中,这将是非常好的,但是可以理解的是,当试图写入文件时,出现访问错误。 我该怎么办?
许多软件包需要html或公共层次结构中的程序/脚本可访问的子目录。
既然你是(我假设)使用suPHP或equiv在共享服务上运行,这将只运行在所有者UID的脚本,所以这是不可用的。 我采用了一个非常简单的约定:如果任何文件或文件夹名称以_或开始。 那么通过URI访问是被禁止的。 这是通过一个简单的规则,我放在任何.htaccess文件
SetEnvIf Request_URI "(^_|/_|^\.|/\.)" forbidden <Files *> Order allow,deny Allow from all Deny from env=forbidden </Files>
另一种方法是使用RewriteRule:
RewriteRule (^_|/_|^\.|/\.) - [forbidden]
这样做的好处是,您可以对脚本中的任何包含或数据目录采用这种非常简单的约定,但不希望它们通过URI进行浏览。
我对你的陈述有些困惑:
如果我可以将文件放在我的私人目录中,这将是非常好的,但是可以理解的是,当试图写入文件时,出现访问错误。
这是服务提供商的UID拥有/ home / private /的这些恶意软件之一,而且您只能通过您的GID读取访问权限吗? 我的ISP也一样倾销像日志文件的东西。 我可以阅读,但不能写或删除。 这就是为什么我使用/public/_private 。 对不起,矛盾。