保护php页面不被访问

时间:2016-05-10 13:17:17

标签: php

我有一个index.php页面,我正在使用

<?php include("default.php"); ?>

从default.php获取内容。现在我希望如果有人直接打开default.php它就变得无法访问或者将它重定向回index.php页面。我该怎么做 ?

3 个答案:

答案 0 :(得分:4)

如果您不想要用户访问的内容,请不要将其放入public_html。提示在名称中,它是 public

而是将这些文件保存在文档根目录之外。例如,您可能有:

- /public_html
|  - index.php
|
- /files
   - default.php

从此处index.php可以致电:

include("../files/default.php");

但是没有用户能够直接访问default.php

答案 1 :(得分:0)

@ NiettheDarkAbsol的答案是最好的,但有时将文件放在public_html目录之外是不可取的。在这种情况下,您可以在每个文件的顶部添加一个检查,以确保它由有效文件打开,而不是直接访问。我这样做是通过在{(1}}访问的文件顶部设置一个常量,然后将以下内容添加到不允许直接访问的所有页面中:

define('IN_SITE', true, true);

答案 2 :(得分:0)

在文件中添加上面的代码,您将在其他文件中包含哪个文件。 default.php中的这段代码

<?php
if(!defined('MyConst')) {
   die('Direct access not permitted');
}
?>

以下文件中的代码,其中包含此代码的上述文件在index.php文件中

<?php
define('MyConst', TRUE);
?>

在.htaccess的帮助下你可以实现的其他方式在文件夹名称include和.htaccess中添加你的所有文件

Deny from all

我希望这会对你有所帮助