我有一个文件库,其中的文件扩展名为 .php、.sh 和 .txt,这些文件被签出到我的服务器的 Web 目录 (/var/www)。我需要能够通过输入 URL 来访问 .php 文件,但我希望 .sh 和 .txt 文件只能在内部访问 - 这意味着它们可以由 php 或 cron 读取和运行,但绝不可以由输入 URL 的用户读取和运行。我如何在 apache 上执行此操作?我需要将文件的权限设置为某个值还是弄乱 .htaccess 或执行其他操作?
答案1
这正确的这样做的方法是移动文件出去您的文档根目录——只要配置失败,您就会面临数据泄露,这绝对不是什么好事。查看任何现代 Web 应用程序框架以获取示例和执行。
LocationMatch
但是,要在 Apache 中执行此操作,只需在适当的上下文中使用指令:
<LocationMatch \.sh$>
order deny,allow
deny from all
</Location>