我正在做一个小型PHP项目。我想包含许多PHP文件,但我想在其他人通过directlink打开之前保护它们。
例如:
<?php include 'content/scripts/php/sample.php'; ?>
我不希望人们通过访问sample.php
http://samplepage.com/content/scripts/php/sample.php
如果您在共享主机中,不能将文件放在web服务器文件夹之外,或者不能使用.htaccess,一种常见的方法是在主php文件中定义一个常量,然后在每个包含的文件的顶部检查该常量,如果没有定义,则检查die()。通过这种方式,人们仍然可以访问带有路径的文件,但他们只能看到一个空白页面。Wordpress使用这种方法作为例子。
在您的主php文件中:
define('APP', true);
在包含的文件中:
if(!defined('APP')) die();
只需将它们放在web服务器公共文件夹之外(也许可以使用set_include_path,以便更容易地从公共php文件访问它们)。
您也可以在PHP本身中解决此问题,如下所示:
index.php
<?php
define('PARENT_AVAILABLE', true);
include.php
<?php
if (!defined('PARENT_AVAILABLE')) die('Not allowed');