Drupal + .htpasswd: cómo bloquear un sitio de desarrollo pero permitir el acceso a una ruta única

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

  •  28-10-2019
  •  | 
  •  

Pregunta

Así que tengo una configuración de sitio de desarrollo ejecutando Drupal. He bloqueado el sitio con HTTPauth + Htpasswd básico para evitar los malos.

El problema es que un solo nodo, una forma web, debe ser accesible en este sitio de desarrollo desde el sitio en vivo.

Mi pregunta es: debido al enorme proceso de arranque de Drupal, ¿cómo haría para permitir el acceso a solamente este solo archivo/url?

Mi configuración VHOST para htpasswd:

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

He probado algo como lo siguiente sin éxito:

<Location "/node/1334">
   Allow from all
   Satisfy any
</Location>
¿Fue útil?

Solución

No puedes hacerlo así, porque el formulario web no es un archivo, se genera dinámicamente a partir de la información que le dio a Drupal (que puso en el DB). Todos los URI de Drupal (aparte de sus archivos cargados) son index.php que lo envían al lugar correcto. No hay forma de decirle a httpauth que a veces index.php se puede acceder libremente y a veces requiere autenticación.

Hay varias opciones para controlar el acceso a través de un módulo Drupal, o (si su sitio en vivo es Drupal), simplemente podría darle la misma forma web, pero ninguna cantidad de ajustes con httpauth resolverá su problema.

Otros consejos

<Location>-Directives se aplican después .htaccess es procesado. Esto significa, mod_rewrite ya hice lo suyo y la url es ahora /index.php?q=node/1334. Esto es malo, porque <Location> No se puede utilizar para configuraciones basadas en la cadena de consulta. Ver <Location> directiva y Cómo se fusionan las secciones para detalles.

Tendrá que encontrar una solución totalmente diferente, como hacer que la base de datos Drupal esté disponible bajo alguna otra URL, a la que no se puede acceder desde el exterior.

Si desea seguir la ruta de autenticación HTTP, considere el módulo de sitio seguro en lugar de editar .htaccess y crear un archivo .htpasswd. Ese es un proceso propenso a errores, mientras que Secure Site le brinda un formulario que puede usar para escribir una ruta que desea que se excluya de la obtención. Aún mejor, utiliza el sistema de autenticación Drupal, por lo que puede negar/permitir a las personas al sitio en función de los roles y permisos de Drupal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top