Drupal + .htpasswd: come bloccare un sito di sviluppo ma consentire l'accesso al percorso singolo

StackOverflow https://stackoverflow.com/questions/4877069

  •  28-10-2019
  •  | 
  •  

Domanda

Quindi ho una configurazione del sito di sviluppo che esegue Drupal. Ho bloccato il sito con Httpauth + htpasswd di base per tenere fuori i cattivi.

Il problema è che un singolo nodo, una forma web, deve essere accessibile su questo sito di sviluppo dal sito in diretta.

La mia domanda è: a causa del processo di bootstrap contorto di Drupal come vorrei permettere l'accesso a solo Questo singolo file/URL?

La mia configurazione vhost per htpasswd:

<Directory />
   AuthUserFile /var/www/.htpasswd
   AuthName "my radbad dev site"
   AuthType Basic
   Require valid-user
</Directory>

Ho provato qualcosa come il seguente senza successo:

<Location "/node/1334">
   Allow from all
   Satisfy any
</Location>
È stato utile?

Soluzione

Non puoi farlo in quel modo, perché il Webform non è un file, viene generato dinamicamente dalle informazioni che hai dato Drupal (che ha messo nel DB). Tutti gli URI Drupal (a parte i file caricati) sono index.php che ti invio nel posto giusto. Non c'è modo di dire a Httpauth che a volte è possibile accedere liberamente a indice.php e talvolta richiede l'auth.

Esistono diverse opzioni per il controllo dell'accesso tramite un modulo Drupal o (se il tuo sito live è Drupal) potresti semplicemente dargli la stessa forma web, ma nessuna quantità di modifiche con httpauth risolverà il tuo problema.

Altri suggerimenti

<Location>-Direttivi vengono applicati dopo .htaccess è processato. Questo significa, mod_rewrite ha già fatto la sua cosa e l'URL è ora /index.php?q=node/1334. Questo è male, perché <Location> non può essere utilizzato per le configurazioni in base alla stringa di query. Vedere <Location> direttiva e Come si uniscono le sezioni per dettagli.

Dovrai trovare una soluzione totalmente diversa, come rendere disponibile il database Drupal in un altro URL, che non è accessibile dall'esterno.

Se vuoi seguire il percorso di autenticazione HTTP, considera Il modulo del sito sicuro Invece di modificare .htaccess e creare un file .htpasswd. Questo è un processo soggetto a errori, mentre il sito sicuro ti dà un modulo che puoi utilizzare per digitare un percorso che desideri escluso dalla protezione. Ancora meglio, utilizza il sistema di autenticazione Drupal, in modo da poter negare/consentire alle persone al sito in base a ruoli e autorizzazioni Drupal.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top