禁止用户访问但允许脚本/ cron访问

时间:2013-09-18 12:51:30

标签: apache .htaccess cron

我有一些我想通过cron运行的文件,但我不希望用户或SE能够访问它们 - 我尝试将它们存储在非Web可访问的目录中,但这导致包含其他一些文件的问题

因此,如果我将它们存储在可通过网络访问的目录中,我该怎么做才能让cron运行脚本,但用户和SE无法访问它们?

1 个答案:

答案 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]