回答:
モジュールを作成し、モジュールファイルに次のコードを貼り付けます。
<?php
/**
* Implementation of hook_boot().
*
* Ask for user credentials and try to authenticate.
*/
function foo_boot() {
require_once DRUPAL_ROOT . '/includes/password.inc';
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
$query = "SELECT pass FROM {users} WHERE name = :name";
$result = db_query($query, array(':name' => $_SERVER['PHP_AUTH_USER']));
$account = new stdClass();
foreach ($result as $row) {
$account->pass = $row->pass;
}
if (isset($account->pass)) {
if (user_check_password($_SERVER['PHP_AUTH_PW'], $account)) {
return;
}
}
}
header('WWW-Authenticate: Basic realm="Development"');
header('HTTP/1.0 401 Unauthorized');
exit;
}
これはHTTP認証を使用し、Drupalデータベースで有効なユーザー名とパスワードを確認します。
PHP CLI、Drush、またはcronに問題がある場合は、フックに次のコードを追加できます。
// Allow cron through
if (basename($_SERVER['PHP_SELF']) == 'cron.php') {
return;
}
// Allow PHP CLI/Drush through
if (isset($_SERVER['argc'])) {
if (php_sapi_name() == 'cli' || (is_numeric($_SERVER['argc']) && $_SERVER['argc'] > 0)) {
return;
}
}
mod_auth
Apacheセットアップに追加します。これは、ホスト(Linux、Windows)によって異なります。これにはモジュールのダウンロードが含まれる場合があり、httpd.confの行のコメントを外すだけの場合があります
LoadModule auth_basic_module modules/mod_auth_basic.so
htpasswd
apache binariesフォルダーのコマンドを使用して、.htpasswdファイルを作成します
htpasswd -c user pass
<DIRECTORY>
クリーンURL書き換えルールの直後に、ステートメントに次のコードを追加します。
AuthType Basic
AuthName "My Auth"
AuthUserFile \path\to\.htpasswd
Require valid-user
Apacheを再起動します。利益。
.htaccess
drupalルートのファイルにアクセスできますか?100%確信はありませんが、そこに置いてみてください。気を付けて、バートの解決策ははるかに良いようです:)
HTTP認証を使用します。Apacheでこれを行う方法については、http://httpd.apache.org/docs/2.2/howto/auth.htmlで文書化されています。マルチサイトインストールの場合、< VirtualHost>の<Directory>セクションは、構成ディレクティブを配置する適切な場所になります。
OPは、これは共有ホスティングに関するものであるとコメントしています。ほとんどの共有ホスティングは、cPanelまたはその他のコントロールパネルを提供します。これにより、ディレクトリの単純な.htaccessパスワード保護が実行されます。
この方法を使用して、開発中のサイトの最上位ディレクトリを保護しました。cPanelを使用してディレクトリを保護する場合は、「パスワード保護ディレクトリ」メニュー項目を探します。
Drupalをインストールする前に最上位ディレクトリを保護すると、cPanelはそのディレクトリに.htaccessファイルを作成します。そのファイルの内容に、Drupalが提供する.htaccessファイルを追加または追加します。Drupalのインストール後にディレクトリを保護する場合、cPanelは必要な行を既存のDrupal .htaccessファイルに追加するだけで、ファイルの残りの部分を邪魔しないと確信しています。Drupalのアップグレード中に.htaccessファイルを置き換える場合は、これらの行を必ず保存してください。