我有一些我想通过cron运行的文件,但我不希望用户或SE能够访问它们 - 我尝试将它们存储在非Web可访问的目录中,但这导致包含其他一些文件的问题
因此,如果我将它们存储在可通过网络访问的目录中,我该怎么做才能让cron运行脚本,但用户和SE无法访问它们?
答案 0 :(得分:1)
假设这些PHP文件位于DOCUMENT_ROOT/scripts
目录中,然后将此代码添加到.htaccess
目录下的DOCUMENT_ROOT
中:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+scripts/ [NC]
RewriteRule ^ - [F]
这将显示/scripts
的任何Web请求的禁止错误,但允许您的cron作业访问它们(假设cron使用php -f
从命令行执行它)
要阻止访问sub / subdir中的所有.php
文件,请将此代码放入sub/subdir/.htaccess
:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s+/+.+?\.php[\s?] [NC]
RewriteRule ^ - [F]