¿Qué es y para que sirve el .htaccess?

Publicado por 4kstore, Julio 03, 2007, 18:37:27

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

4kstore

:arrow: ¿Qué es el .htaccess?
El .htaccess es un archivo de texto oculto que contiene una serie de directivas para el servidor Apache. Cuando un cliente solicita un archivo al servidor, este busca desde el directorio raíz hasta el subdirectorio que contiene el archivo solicitado el archivo .htaccess y tiene en cuenta estas reglas antes de proceder con la petición, es decir, se aplican las normas especificadas al directorio en el que se encuentre .htaccess y los directorios por debajo de él.

:arrow: ¿Y en qué puede servirme?
En muchos casos: el .htaccess puede restringir el acceso a determinados archivos, impedir el listado de los archivos de un directorio, redireccionar, personalizar las páginas de error, impedir hotlinking fuera de nuestra web o impedir el acceso a determinadas IPs o rangos de IP.

:arrow: Me gusta, me gusta... Pero, ¿Cómo creo un .htaccess?
Crea primero un htaccess.txt y en su interior inserta los códigos que necesites. Súbelo a tu web con tu Gestor de FTP y una vez ahí renombramos nuestro archivo a .htaccess con el punto por delante y sin extensión. ¿Sencillo, verdad?

:arrow: Si... Pero, ¿Y los códigos que mencionas?
Claro, a eso vamos. Para cada fin hay unos códigos: Por ejemplo, veamos como Impedir el listado del contenido de un directorio.
Cuando se intenta acceder a un directorio, en ausencia de un archivo de índice, Apache muestra por defecto el contenido del directorio. Si queremos impedir al usuario ver el contenido de un directorio, bastaría con crear un archivo de índice, por ejemplo index.html, pero existe una solución más elegante mediante la directiva Options. Basta crear un archivo .htaccess que contenga la línea:


Options -Indexes

También podríamos utilizar la directiva DirectoryIndex, que especifica qué archivos actúan como índice por defecto, y que archivo mostrar en el caso de que estos no se encuentren. Por ejemplo la línea:

DirectoryIndex index.php index.html index.htm /prohibido.php

Esto indicaría al servidor que debe buscar los archivos index.php, index.html o index.htm, en ese orden, y en el caso de no encontrar ninguno de ellos, cargar el archivo prohibido.php.

:arrow: ¿Puedo poner mas de dos funcionalidades en mi .htacces?
Si, puedes hacerlo. Pero hay algunos consejos:
Mantén el archivo .htaccess pequeño: este archivo es procesado por el servidor web en cada pedido (pudiendo causar problemas de performance).
Mantén tu archivo .htaccess organizado. Utiliza comentarios (líneas que comienzan en #) y se lógicamente consistente. Es complicado entender un archivo .htaccess desorganizado una vez que crece lo suficiente.


:arrow: Quiero algunos códigos más...
No hay problema, acá te dejo algunos más:

- Hacer un 404 personalizado
Primero diseña tu página "404.html" de "Error 404 - Página no encontrada", acá algunos consejos:
-Poner un logo de la web
-Introducir dirección de contacto
-Una explicación del error
-Un menú para ir a otras partes de la página
Crea tu .htaccess con este código:


ErrorDocument 404 http://www.misitio.com/404.html

Obviamente tienes que cambiar lo de misitio.com por la dirección del directorio donde has guardado tu 404.html

- Escondiendo la extensión del lenguaje de scripting
Se puede aumentar la seguridad cambiando la extensión de los scripts para que los visitantes desconozcan qué lenguaje estás utilizando:


# Make PHP code look like unknown types
AddType application/x-httpd-php .cool


De esta forma, los archivos .cool serán tratados como si fuesen archivos PHP. Se deben renombrar los archivos que se quiera con esta nueva extensión.

- Bloquear descargas de nuestros archivos fuera de nuestra web

[hide]Si se desea bloquera algunas partes del sitio de cualquier referer malicioso:


RewriteEngine on
RewriteCond %{HTTP_REFERER} ejemplo\.com [NC,OR]
RewriteCond %{HTTP_REFERER} otroejemplo\.com
RewriteRule .* - [F]


Utilizando el motor rewrite [de reescritura] se denegará el acceso al sitio a cualquier visitante que venga de chicomalo.com u otrositiodesagradable.com. Para evitar el robo de ancho de banda, se puede bloquear el acceso a un archivo en particular (o extensión de archivos).

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([-a-z0-9]+\.)?example\.com[NC]
RewriteRule .*\.(zip|mp3|avi|wmv|mpg|mpeg)$ http://www.example.com/images/nohotlink.gif [R,NC,L]


Esto dice: "si el visitante no proviene de misitio.net, entonce redirije todos los pedidos de archivos (zip,mp3,avi,wmv,mpg,mpeg) a una imagen que dice "No permitimos hotlinking" De esa forma, puedes redirigir a una página, o lo que desees, o p uedes modificar la lista de extensíones de archivo para incluir/quitar otros archivos.
Cuidado: cuando se decide bloquera el hotlinking de imágenes recuerda que puedes estar bloqueando todo tráfico fuera del alcance de tu dominio. Por ejemplo, si se posee un archivo de sindicación tomado por bloglines necesitarás modificar la regla para permitirles a los lectores obtener las imágenes - o el RSS se verá mal.
[/hide]

Créditos:
:arrow: www.EnEspanol.com.ar
:arrow: MundoGeek.net
:arrow: www.Ayuda-Internet.net

Post Echo por AndenBomber - Hackstore



Camello_AR

Muchas gracias muy ilustrativo (igual las funcionalidades de un .htaccess en Apache son prácticamente todas las de un fichero de configuración, un uso muy útil es restringir el acceso a directorios o ficheros por listas de usuarios -el típico cartel de usuario contraseña que si no se ponen bien da un error 401-)

rodrigo_77

"Y vuelvo a despertar, cansado de estar tan cansado de ser
me digo: "No hay mitad que sea tan mala como la que tenés".
Y olvido que traigo conmigo canciones y amigos
tu alma es ahora mi estrella
el dolor ya no hace mal."  El Bordo.

juanga82

Futuro Veterinario de animales exóticos
**Larga vida al reggae**

ReizeL

muy pero muy interesante...


Se agradece...






saludos--------------------------------------------------->ReizeL
Sobre La Palma de mi Lengua Vive el Himno de mi Corazon...

Franch


Niko184


_limon_


BetoRock


xtacis


SEBITUS


FunkMan


dario martin

:) hola soy dariomartin... muy buena la pagina y muchas gracias aunke todabia no baje nada jaja, gracias

papilay

#13
 
gracias, siempre lo usé pero hay algo que nunca supe si se puede configurar, y es el Total Commander. me refiero a que de manera local puedo verlo listado el archivo .htaccess pero remotamente (accediendo a un FTP) no lo muestra. para copiarlo a mi disco tengo que ejecutar en la linea comandos "RETR .htaccess"
Alguien tiene idea si existe la opcion de verlo ???


graciasssssss =)


papilay

por si les interesa:
pueden hacer una restricción de acceso por IP
lo que se indica es denegar todo (deny all) y se habilitan (allow) por IP o por rangos de IP
order Deny,Allow
Deny from all
Allow from 168.91.224.60
Allow from 10.1.0.0/16
Allow from 190.185.0.11 190.1.198.6
Allow from 192.168


más info en apache.org