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

Comentarios
  1. cyberfrancis

    Ahora te queda por decirnos como impedimos el acceso a los online poker, texas holden, etc… 🙂

    Responder

  2. Personalmente, el que más me gusta y útil veo es el mod_rewrite. Con él se pueden hacer cosas como redireccionar a un cliente según la página que pida o el cliente (navegador) que use, o desde la página que accede y/o/u ae/ae muchas más cosas o combinaciones de varias.

    Responder

  3. Ya sabes tio… a crear el .htaccess para que no roben tu precioso ancho de banda 😀

    Responder

  4. Psss: Mira el enlace “Home” de arriba del menu 😉

    Volvi a leer mi anterior comentario y parece que te reprocho algo… para nada 😉

    Responder

  5. Personalmente, el que más me gusta y útil veo es el mod_rewrite. Con él se pueden hacer cosas como redireccionar a un cliente según la página que pida o el cliente (navegador) que use, o desde la página que accede y/o/u ae/ae muchas más cosas o combinaciones de varias.

    sin ir más lejos zootropo.f2o.org ya está redireccionado aquí usando mod rewrite

    Psss: Mira el enlace “Home” de arriba del menu 😉

    lo del home no es culpa mía, sino del tema. en fin. ahora lo cambiaré

    Responder

  6. Yo iba a decir… “Yo tambien lo uso para redireccionar del metodo que usaba la anterior version del script a la nueva”, pero me vino a la mente que lo hice de la forma mas chapucera posible y puse un fichero que redireccionaba con codigo PHP… como dios manda 😀

    Responder

  7. Es algo con el que empiezo a jugar, aunque con WordPress, es bastante sencillo realizar el archivito. 🙂

    Responder

  8. para restringir el acceso a un directorio mil veces mas facil: abres un programa ftp y cambias el chmod de la carpeta a 773 y ya esta 😀

    Responder

    • gamboin

      :S … se nota que no conoces bien el proposito del (.htaccess) … Apache es un usuario que debe de tener acceso a todo, si le restringes el acceso a apache al folder root de tu webapp, entonces COMO RAYOS VA A ACCEDER AL SERVICIO???? aajjajajajaj XD … (.htaccess) sirve para reestringir ciertos eventos DE APACHE… ponte a estudiar mijo antes de contestar babosadas ignorantes…

      Responder

  9. para restringir el acceso a un directorio mil veces mas facil: abres un programa ftp y cambias el chmod de la carpeta a 773 y ya esta 😀

    pero entonces no puedes restringir el acceso a tal o cual ip, o grupo, o ponerle contraseña. ahí no entra ni dios
    o puede que dios sí, si está en todas partes

    Responder

  10. […] psicobyte.com/html/taller/pass.html http://guebmaster.com/articulo/6/proteger-directorios-password/ http://mundogeek.net/archivos/2005/05/04/htaccess/ This entry was posted on Miércoles, Junio 29th, 2005 at 16: […]

    Responder

  11. […] Mundo Geek: .htaccess […]

    Responder

  12. Hola, te escribo a ver si podéis ayudarme.
    Tengo una cuenta en hostinginsiderspuntocom (un hosting cutre) y tengo allí nuevodominio.net apuntando a http://www.dominioviejo.com/nuevodominio/ hasta el sabado no hubo problemas porque lo que los visitantes veían era nuevodominio.net/category/permalink; no se quée paso el fin de semana que se cagó too y ahora no logro que se vea asi, cada vez que escribo nuevodominio.net me redirige a http://www.dominioviejo.com/nuevodominio/ pero me lo muestra en la barra y sólo quiero que allí se vea nuevo dominio.net. ¿Me expliqué? Sé que tengo que poner algo en el .htaccess pero no se me ocurre qué. Os agradecería mucho vuestra ayuda.
    Saludos.

    Responder

  13. cree un archivo .htaccess y otro .htpassword pero como no me reconocía las contraseñas quise borrarlo pero cuando abro mi cliente ftp no los encuentro y el directorio en cuestión está bloqueado ahora con un error 403.

    ¿como puedo solucionarlo?

    gracias

    Responder

  14. Hola, gracias por el comentario. Es muy útil la información

    Tengo una pregunta sobre el .htaccess, vereis. Tengo un sitio, que consta de un dominio y una administración

    Por ejemplo:
    http://www.misitio.com
    http://www.misitio.com/administración

    Se puede hacer que cuando ocurrá el error 404 en la página se vaya a http://www.misio.com/notfound.html y cuando pase dentro de la administración a http://www.misitio.com/administración/notfound.php

    Gracias

    Responder

  15. Anónimo

    esta excelente esto hee 😉

    Responder

  16. Hola! necesito una ayuda haver si me pueden ayudar, he visto en hi5.com y en otra pagina q los miembros pueden ver su perfil como un subdominio por ejemplo luismaster.hi5.com, a mi entender eso se hace en el mismo htaccess, me puede decir como puedo hacerlo, please?

    Responder

  17. notengonidea

    esta web tiene .htaccess? pongo mundogeek.net/.htaccess y no me sale nada, y ademas me salta el antivirus o.O

    Responder

  18. esta web tiene .htaccess? pongo mundogeek.net/.htaccess y no me sale nada

    Tiene, pero no se puede acceder directamente

    Responder

  19. daje

    Saludos a todos los miembros del foro, quisiera saber con que instrucción puedo bloquear algunos directorios de mi sitioy dejar libre uno que necesito. Gracias

    Responder

  20. blind

    hey me gustaria ponerle a mi web una autentificacion de usuario mediante .htaccess como la del xampp me gustaria ke me ayudaran

    se supone que los parametros en xampp que tiene el .htaccess son

    AuthName “xampp user”
    AuthType Basic
    AuthUserFile “C:\Archivos de programa\xampp\security\xampp.users”
    require valid-user

    puuues bien yo quiero validar el usuario con la pantalla esa que sale y con un bd que tengo en mysql como le hago???

    Responder

  21. Hola a todos, os comento una duda que tengo para ver si me podéis ayudar:
    Tengo la necesidad de redireccionar el index de la raiz de mi sitio a una carpeta del mismo sitio que es donde tengo la web principal, he probado con:
    Redirect /antiguo.php http://mundogeek.net/otros/nuevo.php
    …y me funciona perfectamente, pero se podría usar el:
    DirectoryIndex index.php index.html index.htm /prohibido.php
    …en vez de la redirección?? y como??
    ¿o no tiene nada que ver?
    Gracias.

    Responder

  22. mcherubini

    Hola a todos saludos bueno me parece bien el tema, bueno el problema que tengo es referente al que los cliente de un programa no me llegan al servidor, el proxy me dice que estoy denegado el acceso, he puesto todas las reglas de acceso desde el squid prto no pasa nada yo creo es que el apache ,e esta bloqueando la entrada de los clientes.

    el programa montado es OCSinventory

    el herror desde el proxy es:
    TCP_DENIED/400 1564 POST /ocsinventory – NONE/- text/html

    no se en donde esta la falla gracias

    Responder

  23. […] Redirección htaccess Definición según mundogeek: 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 (más información) […]

    Responder

  24. […] / http://www.elchavalin.com/ via mundogeek Y los que sean más observadores todavía se habrán dado cuenta de que si intentan entrar en el […]

    Responder

  25. Espero les sirva, es una combinación de .htaccess con .php

    Para prevenir que te copien las imágenes de tu sitio.

    http://tinyurl.com/9pmr4

    Responder

  26. […] .htaccess. Mundo Geek – Software, linux, tecnología, gadgets e internet. […]

    Responder

  27. luigi

    Hola, no tengo claro cómo crear el .htaccess, es decir, puedo coger un bloc de notas, escribir el contenido y llamarlo pepito.htaccess ?

    Responder

  28. Puedes crearlo con el bloc de notas, si, luigi.

    Pero su nombre tiene que ser .htaccess sin nada delante y nada detrás.

    Responder

  29. Hola,

    Llegué a tu blog por Google, y me parece muy bueno. Quisiera hacerte una consulta: estoy construyendo también un blog en WordPress, y quiero cambiar los permalinks a un modo más amigable para los buscadores (no sólo con el número de artículo, que no ayuda mucho). Sé que tengo que cambiar el archivo .htaccess, pero éste está con 0 Kb en el servidor (me conecto vía FTP). Por lo visto, tengo que crearlo… pero no sé qué es lo que debe contener. Tienes algún modelo para utilizar?

    Mil gracias!

    Responder

  30. Diego no hace falta que rellenes tu mismo el .htaccess

    Vete a Options -> Permalinks en la interfaz de administración y selecciona lo que quieras utilizar. WordPress se encargará de escribir lo necesario en el .htaccess por tí.

    Responder

  31. […] tomado de : http://mundogeek.net/archivos/2005/05/04/htaccess/ Etiquetas de Technorati: reservar, ancho, banda Digg it | Stumble […]

    Responder

  32. […] editor, una aplicación online que, de manera visual y sin complicaciones, les permite crear sus archivos .htaccess que, para quien no lo sepan, es un archivo que se cuelga en la raíz del servidor y que incorpora […]

    Responder

  33. […] editor, una aplicación online que, de manera visual y sin complicaciones, les permite crear sus archivos .htaccess que, para quien no lo sepan, es un archivo que se cuelga en la raíz del servidor y que incorpora […]

    Responder

  34. […] editor, una aplicación online que, de manera visual y sin complicaciones, les permite crear sus archivos .htaccess que, para quien no lo sepan, es un archivo que se cuelga en la raíz del servidor y que incorpora […]

    Responder

  35. […] 1 Si no sabes lo que es el archivo .htaccess lee esta explicación. […]

    Responder

  36. mcasallas

    Excelente nota. Me ha servido mucho lo del redicrect

    Responder

  37. Hola queria saber si yo tengo varios subdirectorios como tendria que hacer con la regla de rewrite

    por ejemplo tengo:
    midominio.com/directorio1/directorio2/directorio3

    y tengo la regla:
    RewriteEngine on
    RewriteRule ([_a-z-]+)/([_a-z-]+)/([_a-z-]+) pagina.php?pagina1=$pagina1&pagina2=$pagina2&pagina3=$pagina3

    esto seria correcto? o tendria que hacer una para cada directorio?

    Responder

  38. Leisy

    tengo un problema en htaccess dice que el comando es invalido ¿que puedo hacer? sin esto no puedo inicializar el apache2.

    Responder

  39. […] – Servidor Web – Apache – PHP – Vulnerabilidades – Tamper Data – Proxy – Paros Proxy – Perl – .HTACCESS – […]

    Responder

  40. […] Web – Apache – .HTACCESS – Comandos habituales en Linux – PHP – Vulnerabilidades – Shell, Shell PHP, Null Byte […]

    Responder

  41. javier

    hola que tal, mira mucho no entiendo, pero me aparece un mensaje cuando quiero subir un archivo “flenght file”, es una pagina para subir archivos “uploadjockey”, no sé por que me tira ese error, pero buscando siempre me dice que tengo que crear este archivo .htaccess, lo hice pero despues no se que hacer!!!, sigue todo igual.

    Responder

  42. […] fichero htaccess es el que permite gestionar un servidor Apache con sus directivas, por lo tanto es muy importante […]

    Responder

  43. […] Tutorial 02 .htaccess […]

    Responder

  44. Muchas gracias por este aporte, lo buscaba por muchas partes, y por fin encontre lo que queria…

    Responder

  45. […] añadir las siguientes líneas de código en nuestro .htaccess, conseguiremos que las direcciones mencionadas más arriba apunten siempre a la misma, […]

    Responder

  46. javi

    Si se edita el fichero .htaccess desde windows, surgirá el problema de que muy posiblemente no permita guardarlos con ese nombre , ya que se negará a crearlo por que piensa que no tiene nombre. La solución pasa por guardarlo con otro nombre y a la hora de subirlo mediante ftp al servidor, cambiarle allí el nombre.

    Responder

  47. […] Este código le dice al servidor que en los directorios busque los archivos index.*** en ese orden, y si no los encuentra, devuelve la página de error. Truco obtenido de Mundo Geek. […]

    Responder

  48. julian

    hola, sabe porque cuando intento modificar mi archivo .htaccess SIEMPRE me aparece:

    __________________________________________
    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, webmaster@inventosencasa.com.ar and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.

    Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
    Apache/1.3.41 Server at MI PAGINA Port 80

    ____________________________________

    es porque mi hosting no soporta modificar este tipo de archivos?

    Responder

Deja un comentario