通过浏览器限制对.php文件的直接访问,并且只允许index.php访问它们

时间:2013-11-08 17:07:14

标签: php .htaccess

我的网站上有一个脚本,允许用户编辑/创建他们的帐户。我想限制通过浏览器直接访问文件(例如www.mydomain.com/cp/page/login.php或www.mydomain.com/cp/home.php),并且只允许index.php访问这些文件。我试过.htaccess但是index.php无法访问它们。此外,我无法将它们移出public_html文件夹。它不包括文件夹。我怎么能做到这一点? 如果你还需要别的东西,请现在就告诉我。

2 个答案:

答案 0 :(得分:4)

这样做的一种方法是使用PHP的includerequire调用:

include '/path/to/script.php';

include由服务器端的PHP处理,因此Apache块不会对此产生影响。

然后,您可以保留现有的<Files>指令来阻止访问.php文件:

<Files *.php>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Files>

<Files index.php>
Order Allow,Deny
Allow from all
</Files>

答案 1 :(得分:1)

PHP中一种常见的方法是在index.php中定义一些内容并在其他内容中检查它:

//index.php
define('INDEX', true);
//more code


//register.php
if(!defined('INDEX') { die(); }
//more code