Buat modul dan rekatkan kode berikut dalam file modul Anda:
<?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;
}
Ini menggunakan Otentikasi HTTP dan memeriksa Database Drupal untuk nama pengguna dan kata sandi yang valid.
Jika Anda memiliki masalah dengan PHP CLI, Drush atau cron, Anda dapat menambahkan kode berikut di hook:
// 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;
}
}
Jika Anda menggunakan Drupal 7, modul Shield tersedia untuk tujuan ini. Ini mengotentikasi satu pengguna, kata sandi dan bersama.
sumber
Tambahkan
mod_auth
ke pengaturan apache. Ini bervariasi tergantung pada host Anda (linux, windows). Ini mungkin melibatkan pengunduhan modul, mungkin hanya melibatkan penghapusan komentar pada baris di httpd.conf AndaBuat file .htpasswd, menggunakan
htpasswd
perintah di folder apache binariesTambahkan kode berikut ke
<DIRECTORY>
pernyataan Anda tepat setelah aturan penulisan ulang URL bersih Anda:Mulai ulang apache. Keuntungan.
sumber
.htaccess
file di root drupal? Saya tidak 100% yakin, tetapi Anda dapat mencoba meletakkannya di sana. Pikiran Anda, solusi Bart tampaknya jauh lebih baik :)Gunakan otentikasi HTTP. Cara ini dilakukan dengan Apache didokumentasikan di http://httpd.apache.org/docs/2.2/howto/auth.html . Untuk instalasi multisite, bagian <Directory> dari <VirtualHost> akan menjadi tempat yang tepat untuk meletakkan arahan konfigurasi.
sumber
OP telah berkomentar bahwa ini adalah shared hosting. Sebagian besar hosting bersama menyediakan cPanel atau panel kontrol lain, yang akan melakukan perlindungan kata sandi .htaccess sederhana untuk direktori.
Saya telah melindungi direktori tingkat atas dari situs yang sedang dikembangkan menggunakan metode ini. Jika Anda menggunakan cPanel untuk melindungi direktori, cari item menu "Password Protect Directories".
Jika Anda melindungi direktori tingkat atas sebelum Anda menginstal Drupal, cPanel akan membuat file .htaccess di direktori itu. Tambahkan atau tambahkan konten dari file itu dengan file .htaccess yang disediakan Drupal. Jika Anda melindungi direktori setelah menginstal Drupal, saya cukup yakin cPanel hanya akan menambahkan baris yang diperlukan ke file .htaccess Drupal yang ada dan tidak mengganggu sisa file. Pastikan Anda mempertahankan baris tersebut jika Anda mengganti file .htaccess selama pemutakhiran Drupal.
sumber