有人可以帮我制作一个 .htaccess 文件吗,或者我如何限制对特定位置的访问。
我所有可访问的文件都位于,/var/www/website
但是我还有一些类似的文件夹,/var/www/website/secrets, var/www/website/tools
我希望它们无法通过网络浏览器访问。
我的主要问题是我有 cronjobs 执行 php 脚本var/www/website/tools
并且我也不想拒绝它们访问。
答案1
要阻止所有网络访问这些目录,只需在每个目录中放置一个包含以下行的 .htaccess 文件:
Apache 2.4.x:
Require all denied
Apache 2.2.x:
Order deny,allow Deny from all
当然,这一切都假设您已AllowOverride
配置好可以使用 .htaccess 文件。如果没有,那么您可以将这些行放在全局配置中的虚拟主机条目中,如下所示:
<Directory "/var/www/website/secrets">
...whichever entry from above here....
</Directory>
此外,只要您的 cron 直接调用脚本(使用 PHP 二进制文件)并且没有执行诸如 curl 或 wget 之类的愚蠢操作,那么那些 .htaccess 条目就不会对它们产生影响,因为它只会影响基于 Web 的流量(通过 Apache 传输的流量)。
我还建议阅读有关这个主题的 Apache 文档 - 它确实非常有帮助: