Foros del Web » Administración de Sistemas » Apache »

Proteger directorios con htaccess

Estas en el tema de Proteger directorios con htaccess en el foro de Apache en Foros del Web. Hola. Tengo una aplicación web en APACHE PHP con una estructura como esta: /www/app/ /www/app/index.php /www/app/php.ini /www/app/classes/ /www/debug/ Deseo que el directorio app/ sea accesible ...
  #1 (permalink)  
Antiguo 06/05/2009, 23:04
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
Proteger directorios con htaccess

Hola. Tengo una aplicación web en APACHE PHP con una estructura como esta:

/www/app/
/www/app/index.php
/www/app/php.ini
/www/app/classes/
/www/debug/


Deseo que el directorio app/ sea accesible públicamente, pero que los directorios classes, debug y el archivo php.ini no sean accesibles. Quiero que si alguien trata de acceder a misitiopuntocom/debug (o a cualquier archivo dentro) , sea redirigido a misitiopuntocom o que le salga un mensaje de error y que NO pida una contraseña porque nadie debe entrar ahi y por eso no deseo usar htpasswd. Entonces he creado un archivo .htaccess en /www/app/.htaccess con estas líneas:

<Files "php.ini">
order deny,allow
deny from all
</Files>


Hasta ahi todo bien: Oculta el archivo php.ini y app es accesible. Luego trato de ocultar los otros directorios agregando estas líneas:

<Directory "debug">
order deny,allow
deny from all
</Directory>
<Directory "app/classes">
order deny,allow
deny from all
</Directory>



Pero al hacerlo, en todas las páginas del servidor, incluyendo el index, me sale: 'Internal Server Error'. Y yo deseo que app si sea accesible.

El archivo httpd.conf tiene esta configuración:

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "C:/www">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from All
</Directory>


Que estoy haciendo mal? Que está mal en la sintaxis de mi .htaccess? Gracias
  #2 (permalink)  
Antiguo 07/05/2009, 08:04
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Proteger directorios con htaccess

Lo que puedes hacer para facilitar la configuración es colocar dentro de los directorios que quieres bloquear un archivo .htaccess con el contenido:
Código Apache:
Ver original
  1. Order Deny, Allow
  2. Deny from All
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 07/05/2009, 13:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Proteger directorios con htaccess

Gracias David. Es una solución aceptable, pero yo deseo utilizar solamente un htaccess en el raiz, porque en realidad, mi aplicación tiene muchas más carpetas y necesito denegar el acceso a muchas cosas. Por ejemplo, en la carpeta debug, guardo archivos .txt de depuración de la ejecución de mis scripts, y estos archivos el sistema los va eliminando periodicamente para que el servidor no se me llene. Igualmente tengo un directorio que almacena el log de errores y otro que almacena el registro de las operaciones de los usuarios. A veces por error he eliminado el htaccess de esos directorios y no deseo que eso me suceda. No quiero estar pendiente de 20 archivos htaccess.

Sábes como podría denegar el acceso solo con un archivo htaccess desde la raiz?
  #4 (permalink)  
Antiguo 07/05/2009, 14:17
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Proteger directorios con htaccess

Si tienes acceso al archivo principal de configuración (httpd.conf). Puedes bloquear el acceso directamente desde allí:
Código Apache:
Ver original
  1. <Location /debug/>
  2.     Order deny,allow
  3.     Deny from all
  4. </Location>
De lo contrario, puedes usar el mod_rewrite para hacerlo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:47.