2017-12-27 393 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