Erstellen Sie ein Modul und fügen Sie folgenden Code in Ihre Moduldatei ein:
<?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;
}
Hierbei wird die HTTP-Authentifizierung verwendet und in der Drupal-Datenbank nach einem gültigen Benutzernamen und Kennwort gesucht.
Wenn Sie Probleme mit PHP CLI, Drush oder cron haben, können Sie den folgenden Code in den Hook einfügen:
// 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;
}
}
Wenn Sie Drupal 7 verwenden, ist das Shield- Modul für diesen Zweck verfügbar. Es authentifiziert einen einzelnen, gemeinsam genutzten Benutzer und ein Passwort.
quelle
In
mod_auth
Apache - Setup. Dies hängt von Ihrem Host ab (Linux, Windows). Dies kann das Herunterladen eines Moduls und das Auskommentieren einer Zeile in Ihrer httpd.conf beinhaltenErstellen Sie eine .htpasswd-Datei mit dem
htpasswd
Befehl im Apache Binaries-OrdnerFügen Sie der
<DIRECTORY>
Anweisung unmittelbar nach der Neuschreibungsregel für saubere URLs den folgenden Code hinzu :Starten Sie Apache neu. Profitieren.
quelle
.htaccess
Datei in Drupal Root? Ich bin mir nicht zu 100% sicher, aber Sie können versuchen, es dort einzubauen. Wohlgemerkt, Bart's Lösung scheint viel besser zu sein :)Verwenden Sie die HTTP-Authentifizierung. Wie dies mit Apache gemacht wird, ist unter http://httpd.apache.org/docs/2.2/howto/auth.html dokumentiert . Bei einer Installation mit mehreren Standorten ist der Abschnitt <Directory> des <VirtualHost> ein geeigneter Ort, um die Konfigurationsanweisungen abzulegen.
quelle
Das OP hat kommentiert, dass dies auf Shared Hosting ist. Die meisten gemeinsam genutzten Hosts bieten cPanel oder ein anderes Steuerungsfeld, mit dem Verzeichnisse einfach mit einem .htaccess-Kennwort geschützt werden können.
Mit dieser Methode habe ich das oberste Verzeichnis einer Site geschützt, die sich in der Entwicklung befindet. Wenn Sie das Verzeichnis mit cPanel schützen, suchen Sie den Menüpunkt "Kennwortschutz für Verzeichnisse".
Wenn Sie das oberste Verzeichnis schützen, bevor Sie Drupal installieren, erstellt cPanel eine .htaccess-Datei in diesem Verzeichnis. Fügen Sie dem Inhalt dieser Datei die von Drupal bereitgestellte .htaccess-Datei hinzu oder stellen Sie sie voran. Wenn Sie das Verzeichnis nach der Installation von Drupal schützen, ist es ziemlich sicher, dass cPanel der vorhandenen Drupal .htaccess-Datei nur die Zeilen hinzufügt, die es benötigt, und den Rest der Datei nicht stört. Stellen Sie einfach sicher, dass Sie diese Zeilen beibehalten, wenn Sie die .htaccess-Datei während eines Drupal-Upgrades ersetzen.
quelle