Drupal 7 HTTP Auth

Drupal 7-ben (és Drupal 6-ban is) szükség lehet arra, hogy amíg a fejlesztés tart, addig a Google és társaik ne babrálják az oldalt, ne gyűjtsenek be róla semmi infót. Erre (is) jó lehet a "HTTP Authentication", amikor a böngésző előbb egy aznosító-jelszót kér és csak az után enged az oldalra.

Több megoldás is létezik, az alábbihoz nem kell a rendszergazdával egyezkedni, mindent a Drupal fájlokban be lehet állítani.

Két fájlban kell módosítani:
settings.php
.htaccess

A .htaccess módosítása

A záró </IfModule> elé írjuk be az alábbiakat:
 # Password protection.
  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

Azaz a fájl vége így nézzen ki:
 # Password protection.
  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>

A settings.php módosítása

 A fájl legvégére másoljuk be az alábbit függvényt és annak a meghívását. A meghívásnál a felhasználó nevét és jelszavát tetszés szerint állítsuk be!

/**
 * Protect the site with a single function.
 */
function secure_the_site_with_password($username = 'monkey', $password = 'monkey', $message = 'This site is protected') {
  // Password protect this site but ignore drush and other command-line
  // environments.
  if (php_sapi_name() != 'cli') {
    // PHP-cgi fix.
    $a = base64_decode(substr($_SERVER["HTTP_AUTHORIZATION"], 6));
    if ((strlen($a) == 0) || (strcasecmp($a, ":") == 0)) {
      header('WWW-Authenticate: Basic realm="Private"');
      header('HTTP/1.0 401 Unauthorized');
    }
    else {
      list($entered_username, $entered_password) = explode(':', $a);
      $_SERVER['PHP_AUTH_USER'] = $entered_username;
      $_SERVER['PHP_AUTH_PW'] = $entered_password;
    }
    if (!(isset($_SERVER['PHP_AUTH_USER']) && ($_SERVER['PHP_AUTH_USER'] == $username && $_SERVER['PHP_AUTH_PW'] == $password))) {
      header('WWW-Authenticate: Basic realm="' . $message . '"');
      header('HTTP/1.0 401 Unauthorized');
      // Fallback message when the user presses cancel / escape.
      echo 'Access denied';
      exit;
    }
  }
}

// Use a custom username & password.
secure_the_site_with_password('<USERNAME>', '<PASSWORD>');

 

forrás:  http://mc-kenna.com