Apache 使用Drupal进行非Drupal身份验证

Apache 使用Drupal进行非Drupal身份验证,apache,drupal,Apache,Drupal,我有一个Apache web服务器,在web根目录上有Drupal。我在根目录的子目录中还有一些非Drupal内容。我想让非Drupal内容不可访问,除非用户先登录Drupal 我遇到过使用mod_auth_mysql()的情况,但这并不是我想要的。它要求用户登录两次(一次登录Drupal,一次登录非Drupal内容) 我认为解决方案类似于让.htaccess运行一个脚本来确定用户是否登录。这个脚本必须连接到Drupal系统 是否可以使用.htaccess运行脚本以确定是否应授予访问权限 或者有

我有一个Apache web服务器,在web根目录上有Drupal。我在根目录的子目录中还有一些非Drupal内容。我想让非Drupal内容不可访问,除非用户先登录Drupal

我遇到过使用mod_auth_mysql()的情况,但这并不是我想要的。它要求用户登录两次(一次登录Drupal,一次登录非Drupal内容)

我认为解决方案类似于让.htaccess运行一个脚本来确定用户是否登录。这个脚本必须连接到Drupal系统

是否可以使用.htaccess运行脚本以确定是否应授予访问权限


或者有更好的解决方案吗?

我通过部分加载Drupal(通过Drupal\u BOOTSTRAP\u会话)然后检查$user global来实现这一点

<?php
$base_url = 'http://'.$_SERVER['HTTP_HOST'];
$drupal_path = "../../";
$cdir = getcwd();
chdir($drupal_path);
require_once 'includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);
chdir($cdir);

global $user;

$access_granted = in_array('authenticated user', $user->roles);
    if (!$access_granted):
            //Show page
        else:
            //Show access denied
        endif;
 ?>


这是我一直在寻找的解决方案的一部分,但不是“//Show Page”我想打印“1”;和“//显示访问被拒绝”,打印“0”。然后让一个模块(有点像mod_auth_external)解析结果并在webroot下的子目录中显示页面。。。我想问题是,我只需要一次登录,而不是Apache要求非Drupal内容的用户名/密码,我认为您只是想要一种方法来保护一些静态HTML页面或类似的内容,在这种情况下,您可以在这些页面上扔这个。我不知道有什么解决方案完全符合您的要求。