Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php apache:阻止远程浏览器运行特定文件_Php_Apache_.htaccess - Fatal编程技术网

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

Php apache:阻止远程浏览器运行特定文件,php,apache,.htaccess,Php,Apache,.htaccess,我有一个从cron运行的PHP脚本,用于发送提醒电子邮件。 为了防止未经授权使用此脚本,我有以下.htaccess文件,在将apache从2.2升级到2.4之后,我将其升级为Require指令 <Files "reminder.php"> Require all denied Require host localhost Require ip 127.0.0.1 Require ip xxx.yyy.zzz.aaa </Files> 我发现了问题。在设置2.4服务器时,

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

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

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

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

所以用

AllowOverride All

组中修复了该问题。现在允许.htaccess文件执行其工作。

希望此链接可以帮助您将其移出web根目录。如何从cron调用脚本?30 5***/home/lamp/skilodgedeploy/cronjobscript/skilodgereminder.sh该.sh文件有:wget-q谢谢@SanjayKumarNS,但在我的Apache 2.2服务器上,.htaccess文件(上面显示的第二个文件)正在工作-或者至少有什么东西阻止访问那里的remention.php。.htaccess文件比rementer.php文件高一个目录级别。在我的Apache 2.4服务器上,文件处于相同的相对位置,但Require指令没有任何作用。@jeroen我同意你的观点,如果直接调用脚本,它不需要在webroot中,但脚本是网站的一部分,它调用该网站源代码中的其他函数。此外,服务器(实例)上大约有20个此代码副本,并且使用rsynch通过shell脚本自动部署。如果在虚拟服务器web树中包含rementer.php,则执行此操作会容易得多。htaccess通过拒绝访问rementer.php在旧的Apache 2.2服务器上工作,因此它应该能够使用Require指令在Apache 2.4上工作。
AllowOverride All