.htaccess

.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.

Ejemplos de usos para .htaccess pueden ser restringir el acceso a determinados archivos, impedir el listado de los archivos de un directorio, redireccionar, personalizar las páginas de error o impedir el acceso a determinadas IPs o rangos de IP.

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
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.

Redireccionar el tráfico web
Si nos encontramos con la necesidad de enviar al usuario a una determinada dirección web cuando pida una cierta página, por ejemplo porque la hallamos movido, podemos utilizar la directiva Redirect de Apache.

Redirect /antiguo.php http://mundogeek.net/otros/nuevo.php

Crear un mensaje de error personalizado
Este es uno de los usos más frecuentes para el archivo .htaccess. En ocasiones se pueden producir errores que deben ser notificados al usuario, por ejemplo en el caso de que se intente acceder a una página que no existe, bien por un fallo del usuario al introducir la url, o bien porque la página haya sido movida o eliminada. Estos mensajes suelen estar escritos en inglés, no ofrecen demasiada información al usuario, y rompen la estética general del sitio, por lo que es imprescindible personalizarlos.

Para lograrlo utilizamos la directiva ErrorDocument, del que tenemos un ejemplo a continuación:
ErrorDocument 403 "Acceso denegado
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php

Los códigos de error 403, 404 y 500 son los más comunes, y se producen respectivamente cuando no se tiene permiso para acceder a una página, cuando no se encuentra un archivo y debido a un error interno del servidor.

La primera línea indica al servidor que muestre el mensaje ‘Acceso denegado’ siempre que se produzca el error 403. Las otras líneas ilustran la forma de indicar al servidor que muestre una determinada página cuando se produzca un error (se puede usar direcciones relativas o absolutas).

75 pensamientos en “.htaccess”

  1. Quisiera que me indicaras que comandos debo introducir aparq ue se vean video en el servidor LINUX.
    ademas hay que añadir adt type video/ mp4 ????

  2. Me podiais indicar si estos comandos son correctos para que en el servidor LINUX se vea video y flax?
    AddType Assign a MIME-Type to a file ending
    AddType mime-type mp4
    AddType video/x-ms-wmv wmv
    AddType application/x-shockwave-flash swf
    AddType video/mp4 mp4
    AddType / video / x-sgi-movie wmv
    AddType /application / x-troff-msvideo avi

  3. Hola: En primer lugar decir que No tengo i idea de programacion, hago mis paginas con un editor. El caso es que me he afiliado a n sistema de micropagos, para vender fotos, videos… Pero no se exactamente como hacer para protegerlos para que no se descarguen sin pagar,del lugar en que los tengo almacenados (terragiga, Mediafire::)Alguien puede darme una soluciñon?.
    No se si este es el foro adecuado, de no serlo, perdonad la molestia. Un saludo
    martha-1arrobahotmailpuntocom

  4. Pingback: .htaccess | Soloblog

  5. Pingback: .htaccess | Mahiloc

  6. Hola ayudemen a hacer un fichero de primariadice dice asi la tarea helabore un fichero con los contenidos de estudio hiatos,dictongos,trictongos,agudas,graves,,esdrujulas,figuras literales definisionesdefinisiones de cada consecto y 5 ejemplo le agradeseria la ayuda.

  7. Buenas noches, instale por error extensiones de Front Page y se me borro el archivo .htaccess y ahora aparece un error 500, como puedo hacer para restablecer mi web a como estaba antes??
    Gracias.

  8. Excelente info ya que me sirvio para configurar que no se mostrara ya que como es una aplicacion para doctores y cada doctor puede subir las imagenes de sus pacientes pues no era bueno que se listara el contenido de las carpetas imagenes por que todos ivan a ver todo por lo tanto esta fue mi solucion la cual esta desarrollada en cake

    en la carpeta APP/ el htaccess debe de contener lo siguiente:

    RewriteEngine on
    RewriteRule ^$ webroot/ [L]
    RewriteRule (.*) webroot/$1 [L]

    Options -Indexes

    y listo ya si ponia la direccion img/ ya me mada un error 404 por lo tanto ya no se listan las imagenes que deben de ser privadas ya nomas es de personalizar dicho error, gracias por el aporte saludos

  9. Pingback: Evitar listado de directorios, archivo en Apache y IIS « Darkchicles the blog

  10. Pingback: Evitar listado de directorios, archivo en Apache y IIS « Darkchicles the blog

  11. mi problema es el siguiente tengo una aplicacion php con zend framework mi .htaccess:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ – [NC,L]
    RewriteRule ^.*$ index.php [NC,L]

    el proyecto esta alojado en un subdominio

    http://miproyecto.midominio.com/

    peor el problema es que cuando ingreso me vota este errorr ya eh foreado e intentado cambiando el .htaccess y nada

    [Tue Aug 21 12:46:07 2012] [error] [client 190.81.80.97] mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use ‘RewriteOptions MaxRedirects’ to increase the limit if neccessary.

  12. Como puedo hacer para que no puedan entrar a mis subdominios solamente ingresando puedan pasando por el dominio principal?

    xxx.subdominio no se pueda ingresar pero puedan

    ingresar por el dominio via enlace xxx.subdominio.com

    No lo he encontrado por ningún lado.

  13. Es fantástico esto del htaccess un archivo txt tan sencillo y como resuelve problemas, a mi me resolvió el ErrorDocument 404 /404.php, muchas gracias

  14. Pingback: ¿Cómo crear una empresa de blogs rentables 4? | Cómo crear mi empresa

  15. Pingback: La mudanza de eCuaderno (parte II: htaccess) - Blogpocket

  16. Pingback: ¿Qué es htaccess? - Blogpocket

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.