apache:阻止远程浏览器运行特定文件

时间:2015-04-09 09:27:50

标签: php apache .htaccess

我有一个从cron运行的PHP脚本,用于发送提醒电子邮件。 为了防止未经授权使用此脚本,我将以下.htaccess文件在从2.2升级到apache之后升级到Require指令。

<Files "reminder.php">
Require all denied
Require host localhost
Require ip 127.0.0.1
Require ip xxx.yyy.zzz.aaa
</Files>

xxx.yyy.zzz.aaa是网络服务器的地址,相当于localhost。

虽然旧的.htaccess文件过去有用,但这个文件并不能阻止远程浏览器的访问。我已阅读并重读所有指令文档,无法查看错误。有线索吗?这是保护设计为从cron运行的PHP脚本的最佳方法吗?

旧的.htaccess文件是:

<Files "reminder.php">
    Order Deny,Allow
    Deny from all
    Allow from localhost
    Allow from 127.0.0.1
    Allow from xxx.yyy.zzz.aaa
</Files>

1 个答案:

答案 0 :(得分:0)

我发现了问题。当我设置2.4服务器时,我明确地使用了

AllowOverride None

并没有在特定目录中覆盖它。 BTW AllowOverride在2.2中默认为All,在2.4中默认为None,因此如果没有指令,我仍然会遇到同样的问题。

所以用

替换它
AllowOverride All
<directory>组内的

修复了问题。现在允许.htaccess文件完成它的工作。