답변:
모듈을 만들고 모듈 파일에 다음 코드를 붙여 넣습니다.
<?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;
}
}
Drupal 7을 사용하는 경우이 목적으로 Shield 모듈을 사용할 수 있습니다. 단일 공유 사용자 및 비밀번호를 인증합니다.
PHP 인증 방패. Apache 인증을 사용하여 사이트에 간단한 방패를 만듭니다. 사용자가 간단한 사용자 이름 / 암호를 모르면 사이트를 숨 깁니다. 그것은 Drupal을 "벽으로 둘러싸인 정원"으로 취급합니다. 이 모듈을 사용하면 HTTP 인증으로 (dev) 사이트를 보호 할 수 있습니다.
mod_auth
아파치 설정에 추가하십시오 . 호스트 (리눅스, 윈도우)에 따라 다릅니다. 여기에는 모듈 다운로드가 포함될 수 있으며 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
아파치를 다시 시작하십시오. 이익.
.htaccess
drupal root 에있는 파일에 액세스 할 수 있습니까? 100 % 확실하지는 않지만 거기에 넣을 수 있습니다. 바트의 솔루션이 훨씬 나아 보인다 :)
HTTP 인증을 사용하십시오. Apache에서이를 수행하는 방법은 http://httpd.apache.org/docs/2.2/howto/auth.html에 문서화되어 있습니다. 다중 사이트 설치의 경우 <Directory> 섹션 <VirtualHost> 이 구성 지시문을 배치하기에 적합한 장소입니다.
OP는 이것이 공유 호스팅에 있다고 언급했습니다. 대부분의 공유 호스팅은 cPanel 또는 다른 제어판을 제공하며 디렉토리에 대한 간단한 .htaccess 비밀번호 보호를 수행합니다.
이 방법을 사용하여 개발중인 사이트의 최상위 디렉토리를 보호했습니다. cPanel을 사용하여 디렉토리를 보호하는 경우 "Password Protect Directories"메뉴 항목을 찾으십시오.
Drupal을 설치하기 전에 최상위 디렉토리를 보호하면 cPanel이 해당 디렉토리에 .htaccess 파일을 만듭니다. Drupal이 제공하는 .htaccess 파일로 해당 파일의 내용을 추가하거나 추가하십시오. Drupal을 설치 한 후 디렉토리를 보호한다면 cPanel이 기존 Drupal .htaccess 파일에 필요한 행을 추가하고 나머지 파일을 방해하지 않을 것입니다. Drupal 업그레이드 중에 .htaccess 파일을 교체 할 경우 해당 행을 유지하십시오.