Ver Mensaje Individual
  #16 (permalink)  
Antiguo 19/03/2006, 21:59
Avatar de uamistad
uamistad
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
El .htaccess es sencillo de utilizar, pero necesitas cierta práctica al principio, en Google seguro que te encuentras buenos tutoriales.

Mira, te voy a poner un ejemplo concreto, vamos a suponer que yo tengo las siguientes carpetas en mi raíz:

imagenes_generales
imagenes_css
pdf_documents
funciones_php
funciones_javascript

Ahora, para protegerlas a todas, nada más necesito crear un archivo de texto plano, con el nombre .htaccess y colocarlo justo en la raíz, junto a todas esas carpetas que quiero proteger, ¿vale?

Ok, aquí vamos, lo que contendría ese archivo como cabecera sería esto:

RewriteEngine On

Con eso activas el módulo REWRITE, el .htaccess puede manejar muchos módulos diferentes, cada uno de ellos tiene su funcionalidad, en este ejemplo sólo usaremos el módulo Rewrite, ¿ok?

Protegiendo imagenes_generales
y ahora para proteger la carpeta de imagenes_generales, échale un ojo al siguiente renglón (lo comenzado con # es un comentario):

#Proteger mis carpetas de listados
RewriteRule ^imagenes_generales/$ - [F,NC]

Encerré imagenes_generales entre los símbolos ^ y $ porque es en esa frase se debe colocar expresión regular, en este caso, pues no estamos usando ninguna. El siguiente elemento es un guión (-) que sirve para decirle a Apache que no haga nada, sólo que siga leyendo y el tercer elemento es [F,NC] que significa que muestre un error (F:forbidden) y NC es para que no importe si imagenes_generales esté escrito con o sin mayúsculas (NC: no capital letter), creo que eso significa NC.

Protegiendo todas las carpetas de imágenes
Bueno, pero ya que nos dan chance de usar una expresión regular, pues saquémosle más provecho. A continuación está cómo podrías sustituir ese RewriteRule para proteger todas tus carpetas de imágenes en una sola línea:

RewriteRule ^im[a-z0-9_-]*/$ - [F,NC]

De esta manera, estás protegiendo todas las carpetas que comiencen con las letras im, es decir, todas tus carpetas de imágenes. No importa qué es lo que siga después de ese im, pero debe de ser (pues así se está especificando en la expresión regular) cualquiera de los siguientes caracteres: letras, números, guiones bajos y guiones normales. Y forzosamente terminar con una diagonal (/), de esta forma le dices que te refieres a una carpeta.

Ahora protejamos todas nuestras carpetas listadas
De la misma forma podríamos, en una sola expresión, proteger las carpetas listadas con:

#RewriteRule ^(im|pdf|f)[a-z_]*/$ - [F,NC]

De hecho, jugando un poco con las expresiones regulares, puedes llegar a expresiones más generales y útiles, pero he aquí el principio de su funcionamiento.

Ya juntando todo, así es como se verá el archivo .htaccess finalmente:

Código:
RewriteEngine On

#Proteger mis carpetas de gente curiosa
RewriteRule ^(im|pdf|f)[a-z_]*/$ - [F,NC]
Otros usos del .htaccess muy interesantes
  • Generar URL's amigables
  • evitar que te pongan tus fotografías en otros sitios web
  • optimizar la forma en que los buscadores rastrean tu sitio, aumentando con ello la cantidad de páginas listadas y ahorrando ancho de banda
  • tener varios sitios en un mismo hosting aunque sólo tengas hayas pagado una sola cuenta
  • evitar que Google 'piense' que tienes contenido duplicado al hacer uniforme la forma en la que te lista en su buscador (así tampoco te divide tu pageRank)
  • Crear redirecciones temporales y permanentes, para que, si cambias de dominio, sigas conservando tu PageRank (entre otros usos)
  • Evitar que un competidor esté monitoreando tus precios con algún script (bloqueando su IP y mostrándole sólo a él que tu página está fuera de servicio)
  • Crear subdominios dinámicamente
  • Y quizá otra que no tengo presentes ahora mismo.

Bueno, es todo, espero que puedas configurar bien tu archivo .htaccess, es muy poderoso y vale la pena explotar su funcionalidad.
__________________
"Di no al Internet Explorer" -Proverbio Chino-

Última edición por uamistad; 19/03/2006 a las 22:06