apache htaccess autenticación basada en cadena de consulta

Estoy usando foros de vainilla que ya tienen estas condiciones y reglas de reescritura en .htaccess:

   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^(.*)$ index.php\?p=$1 [QSA,L]

Lo que me gustaría ahora es agregar algunas reglas de reescritura que soliciten autenticación (Requerir usuario válido) solo cuando estoy en la página /vanilla/index.php?p=/categories/general, es decir, solo la cadena de consulta "p= /categorias/general"

Gracias por su ayuda!

preguntado el 12 de junio de 12 a las 20:06

1 Respuestas

No es posible agregar autenticación basada en la cadena de consulta de una URL por lo que puedo decir.

Usar mod_rewrite, solo puede reescribir una URL en otra, no especificar reglas de configuración adicionales.

La La etiqueta se puede usar para hacer coincidir una URL y requiere autenticación, pero Location no puede hacer coincidir las cadenas de consulta, por lo que no funcionará en su caso.

¿Hay alguna razón por la que necesites usar .htaccess ¿autenticación? ¿Podría construir la lógica en el script PHP fácilmente?

Respondido el 16 de junio de 12 a las 01:06

Encontré diferentes posibilidades en línea, pero no pude hacer que ninguna de ellas funcionara para mi configuración. Esta fue una forma que encontré, aunque no funcionó. Cuando escribí la ruta del directorio, obtuve el error del servidor 500 y, sin la etiqueta del directorio, no pude activar la secuencia de comandos. (desde lucidiocy.com/2010/07/query-string-based-apache.html) - petirrojo manoli

Interesante concepto, aunque no pude hacerlo funcionar. El error 500 es porque <Directory> las secciones no están permitidas en .htaccess archivos, solo en httpd.conf y dentro de vhosts. Probé algunas otras combinaciones pero no pude hacer que funcionara el 100% del tiempo. Al leer los comentarios, incluso el autor de esa publicación no pudo hacer que funcionara al final, que es el mismo problema que yo tenía, creo. Podría ser que esté probando en Apache 2.4, que cambió mucho con respecto a la autenticación de la versión 2.2. - drew010

Gracias por tu respuesta Drew. De acuerdo con #apache en irc.freenode.net, debería ser posible, pero es bastante complicado para mí aprender todos los requisitos de Apache para esta pequeña cosa. Espero que funcione eventualmente. - petirrojo manoli

en realidad en php.net/manual/en/features.http-auth.php puede encontrar buenos ejemplos sobre cómo hacerlo, con los métodos Basic y Digest. ¡Vale la pena leerlo! - Yo soy Zesh

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.