[英]How in .htaccess do I return the file requested but then run a PHP script?
[英]How do I limit my PHP script to only run when requested by localhost?
我无法让我的php页仅在服务器本身请求时才能运行。
这就是我现在所拥有的:
if ($_SERVER['SERVER_ADDR'] == $_SERVER['REMOTE_ADDR']) {
//process page
} else {
$this->redirect('http://' . $_SERVER['HTTP_HOST'] . '/404');
}
但是,当我卷曲它时,它不会给出任何错误或完全不返回任何内容。 如果我删除支票,它会按预期吐出HTML。
我尝试回显这两个值,分别得到192.168.1.186和192.168.1.225。 我确实意识到它们是不同的(这是由服务器本身运行的),但是我该如何解决呢? 这段代码来自这个答案
您问题的标题意味着我可以提供与您的问题内容不太匹配的答案。
我对此的回应是,将整个脚本放在一个巨大的if
语句中似乎有点不安全且无法维护。
如果其他计算机有可能运行您的脚本(例如,通过Web访问脚本),则需要这样的防护。
但是,如果服务器是唯一可以运行该脚本的计算机,为什么不将其放置在只有服务器可以访问它的地方呢? 例如,在Web可访问目录之上或在具有700
权限的子目录中的一个目录级别。 或使用.htaccess
限制访问。
这看起来既安全又可维护。
使用服务器配置来限制文件访问更容易,更好。 例如,您可以在特定目录中使用.htaccess
文件,其内容如下:
order deny,allow
deny from all
allow from 127.0.0.1
拒绝除127.0.0.1(localhost)之外的所有流量。 当有人尝试从另一台计算机访问这些文件时,这将返回403错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.