2016-02-26 25 views
1

我正在設置一個網頁來託管某些用戶的文件。現在,如果您轉到目錄blah /文件夾,您將看到apaches默認文件夾視圖。此文件夾視圖是理想的,但我想阻止人們直接進入服務器目錄中的文件夾。有條件的重定向apache2

現在我有一個登錄頁面啓動一個會話,如果用戶登錄正確,他們將指示他們到他們的頂層目錄並設置一個會話變量。

我想有一種方式,每當有人試圖訪問我的服務器上的文件或文件夾,它會檢查這個變量,如果它不存在將其引導他們回到登錄頁面,如果存在節目他們是默認的文件夾視圖。

我在想我可以使用.htaccess重定向到一個檢查會話狀態的php文件,但我不知道如何讓它在循環中運行。

回答

0

假設您有一個成員頁面,只有當用戶登錄時才能訪問,並且任何人都可以訪問登錄頁面。

您可以使用$ _SESSION []爲此

創建包含在這兩個文件的標題頁面和使用session_start()

登錄頁面應該是這個樣子

<?php 
    require_once 'header.php'; 
    if(isset($_POST['user']&&$_POST['pass']) 
    { 
    //validate the values and check if user login credentials are right 
    $_SESSION['loggedin']='true'; 
    } 
?> 

會員頁面應該是這樣的

<?php 
require_once 'header.php'; 
if($_SESSION['loggedin']=='true') 
{ 
    echo'you can access this page member'; 
} 
else{ 
echo'Sending you back Mr'; 
header('Location: http://somesite.com/login.php'); 
} 
?> 
+0

這看起來像是這樣的原因能夠(目前無法測試它,因爲我在計算機核心上,因爲我沒有對session_path的寫權限)。我沒有看到的是讓服務器只運行一次文件,然後將認證用戶轉到文件夾視圖(不知道Apache如何製作文件夾視圖)。 – jeffpkamp

+0

你想讓用戶查看apache根目錄下的所有文件和文件夾嗎?以 –

+0

爲例。如果用戶現在直接進入website.com/User,他們將看到apache的目錄視圖。我想檢查會話並確認用戶有權訪問該目錄。如果他們這樣做,他們會看到標準的apache目錄視圖,如果他們沒有被重定向到登錄頁面。我不知道如何執行一個php文件,然後顯示apache目錄視圖。 – jeffpkamp