2016-02-26 64 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