2017-12-27 392 views
0

我正在为大学项目开发​​CORE PHP中的自定义CMS。显然我有很多文件和文件夹。我需要帮助在用户激发模板页面时重定向用户。 这里的项目PHP重定向用户

Project 
    | assets 
     | css +js stuff 
    | template 
     | - header.php 
     | - footer.php 
     | - navigation.php 
     | --- 
    | - index.php 
    | - login.php 
    | --- 

现在有什么我的问题的文件结构:我想重定向用户,如果用户直接触发project.com/template/header.php。与naviation.phpfooter等模板文件相同。是否有任何.htaccess变通或处理此功能的函数。

我没关系为重定向用户创建一个错误或404页面。

+0

为什么不把访问者的文件放在httpdocs根目录之外? –

+0

我不访问者直接在url中激发标题或导航文件。显而易见的原因是它会向他们显示错误。不过,我没有在任何地方放置页眉/页脚/导航的直接网址。所以用户将无法知道它的文件结构。但仍然 –

+0

你知道Code Igniter PHP Framework吗? –

回答

0

您可以创建一个定义,在有效页面开始
然后在模板页开始wiith测试,如果值定义 如果不是重定向到index.php

define('TOKEN', true); 
... 
if (!defined('TOKEN')) { 
    header('location:index.php'); 
    exit(); 
} 
2

可以包括一些就像在任何页面下到你不想直接访问

if (realpath(__FILE__) == realpath($_SERVER['SCRIPT_FILENAME'])) { 
    header('HTTP/1.0 404 Not Found', TRUE, 404); 
    die(header('location: error.php?code=404')); 
} 
+0

工作就像一个魅力!谢谢!但仍然有更好的方法来处理这种情况。 –

+0

你可以在你的htaccess文件中设置一些规则来防止访问'template'目录,它的文件 – RamRaider

0

您可以通过.htaccess文件

做到这一点

创建.htaccess文件并将以下行插入该文件,然后将该文件移动到根文件夹。

Redirect 301 /header.php http://www.yourdomain.com/404.php 
Redirect 301 /footer.php http://www.yourdomain.com/404.php 
Redirect 301 /navigation.php http://www.yourdomain.com/404.php