0

WebルートにDrupalを備えたApacheWebサーバーがあります。ルートのサブディレクトリにもDrupal以外のコンテンツがいくつかあります。ユーザーが最初にDrupalにログインしない限り、Drupal以外のコンテンツにアクセスできないようにしたいと思います。

mod_auth_mysql(ここにリンクの説明を入力してください)を使用しているのに出くわしましたが、それは私が望んでいることではありません。ユーザーが2回ログインする必要があります(Drupalに1回、Drupal以外のコンテンツに1回)。

解決策は、.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 に答える