使用PHP重定向用户

时间:2013-06-27 13:37:13

标签: php

我正在构建一个Web应用程序,我使用大量的包含文件来构建我的大多数页面。

例如:

页面profile.php包括about.php,timeline.php,photos.php

现在,如果用户试图直接转到我的某个包含文件,我想将用户发送到我的404页面。我怎么能这样做?

转到localhost / timeline.php应该将用户重定向到404。

我的想法是在那些包含文件中写一个IF语句来检查文件是否被直接打开,这是否可能?

3 个答案:

答案 0 :(得分:2)

快而脏:

profile.php内定义一个常量,并检查它是否存在于包含的文件中:

if (!defined("SOME_CONSTANT")) {
   //Redirect or send a 404 header
}

更慢但更好

从Web根目录(通常是wwwhtdocs文件夹)中获取Web上下文中作为独立文件无意义的文件。

答案 1 :(得分:0)

您可以使用简单的if语句

if(!defined("SECURE")) {
    header("HTTP/1.0 404 Not Found", true, 404);
    include("404_Not_Found.html"); //include the 404 page
    exit;
}

确保在所包含的页面上定义安全常量。

答案 2 :(得分:0)

在前端控制器中定义一个常量,并检查它是否在其他文件中设置。

在顶部的前控制器中:

define("IN_APP");

然后在任何处理之前的其他页面中:

if(defined("IN_APP")) { die(header('HTTP/1.0 404 Not Found', true, 404)); }

更好的选择是将您的其他文件放在子目录中,并使用包含以下代码的.htaccess文件拒绝访问它。

Order deny,allow
deny from all

这仍然允许php包含文件,但会阻止任何人从网上访问它们。