0

我在 Web 根目录上有一个带有 Drupal 的 Apache 网络服务器。我在根目录的子目录中也有一些非 Drupal 内容。我希望它使非 Drupal 内容不可访问,除非用户首先登录 Drupal。

我遇到过使用 mod_auth_mysql (在此处输入链接描述),但这并不是我想要的。它要求用户登录两次(一次登录 Drupal,一次登录非 Drupal 内容)。

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

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

还是有更好的解决方案?

4

1 回答 1

1

我通过部分加载 Drupal(通过 DRUPAL_BOOTSTRAP_SESSION)然后检查 $user 全局来实现这一点。

<?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;
 ?>
于 2012-07-17T16:16:19.757 回答