Juan Manuel 23 de febrero de 2010 a las 08.00
   Imprimir artículo
elWebmaster.com

21 hacks de htaccess que todo desarrollador debería conocer


htaccess-hacksLa configuración del archivo .htaccess de Apache (hypertext access) puede ser una herramienta muy ponderosa en el desarrollo web si se utiliza de la forma adecuada.

Mediante .htaccess podremos realizar redirecciones, proteger archivos y directorios con contrase√Īa, prevenir el hotlinking y el robo de ancho de banda, comprimir archivos y mucho, mucho m√°s. Ent√©rate c√≥mo.

Aseg√ļrate de hacer un backup de tu archivo .htaccess actual antes de aplicar cualquiera de estos hacks.

1. Prevenir el Hotlinking

¬ŅEst√°s cansado de que la gente utilice tu ancho de banda poniendo las im√°genes albergadas en tu servidor en su sitio web? A√Īade el siguiente c√≥digo al final de tu archivo .htaccess para prevenir el hotlinking:

  1. Options +FollowSymlinks
  2. #Protect against hotlinking
  3. RewriteEngine On
  4. RewriteCond %{HTTP_REFERER} !^$
  5. RewriteCond %{HTTP_REFERER} !^http://(www.)?nombrededominio.com/ [nc]
  6. RewriteRule .*.(gif|jpg|png)$ http://nombrededominio.com/img/no_robar_ancho_de_banda.gif[nc]

2. Bloquea todas las peticiones del user-agent

Es posible bloquear a todos los user-agents indeseados que pueden ser potencialmente da√Īinos o quiz√° simplemente para mantener la carga del servidor lo m√°s baja posible.

  1. #Block bad bots
  2. SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
  3. SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
  4. SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
  5. SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
  6. SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
  7. SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
  8. SetEnvIfNoCase user-Agent ^Zeus [NC]
  9.  
  10. Order Allow,Deny
  11. Allow from all
  12. Deny from env=bad_bot

3. Redirecciona a todos, excepto a ciertas IPs

Si por alguna raz√≥n deseas denegar el acceso a todos los usuarios o s√≥lo permitir a un cierto grupo de direcciones IP para que tengan acceso a tu sitio, a√Īade el siguiente c√≥digo a tu archivo .htaccess:

  1. ErrorDocument 403 http://www.nombrededominio.com
  2. Order deny,allow
  3. Deny from all
  4. Allow from 124.34.48.165
  5. Allow from 102.54.68.123

4. Redirecciones 301 amigables con SEO

Si has transferido nombres de dominio o deseas redireccionar a una p√°gina espec√≠fica sin que afecte a los resultados de los motores de b√ļsqueda como Google, utiliza el siguiente c√≥digo:

  1. Redirect 301 /d/file.html http://www.nombrededominio.com/r/file.html

5. Crea una p√°gina personalizada para cada tipo de error

Si te cansaste del dise√Īo por defecto de las p√°ginas de error 401, 403, 404, 500, etc. puedes f√°cilmente crear la tuya propia y referirte hac√≠a ella de esta forma:

  1. ErrorDocument 401 /error/401.php
  2. ErrorDocument 403 /error/403.php
  3. ErrorDocument 404 /error/404.php
  4. ErrorDocument 500 /error/500.php

6. Crea una lista de IPs prohibidas

¬ŅTe cansaste de obtener siempre los mismos comentarios de ciertos usuarios una y otra vez? Simplemente proh√≠be el acceso a determinadas IPs, a√Īadiendo el siguiente c√≥digo:

  1. allow from all
  2. deny from 145.186.14.122
  3. deny from 124.15

7. Setea una dirección de e-mail por defecto para el administrador de servidor

Con el siguiente código puedes especificar la dirección de correo electrónico por defecto para el administrador de servidor:

  1. ServerSignature EMail
  2. SetEnv SERVER_ADMIN default@dominio.com

8. Deshabilita la ventana de aviso de descarga

Usualmente al descargar algo de un sitio web, saltará una ventana que pregunta si deseas abrir el archivo o guardarlo en tu PC. Para prevenir esto, utiliza el siguiente código:

  1. AddType application/octet-stream .pdf
  2. AddType application/octet-stream .zip
  3. AddType application/octet-stream .mov

9. Protege un archivo específico

El código que sigue te permite denegar el acceso a cualquier archivo que desees, mostrando una página de error 403 cuando alguien intenta acceder al mismo:

  1. #Protect the .htaccess File
  2.  
  3. order allow,deny
  4. deny from all

10. Comprime componentes con mod_deflate

Como alternativa a la compresión de archivos mediante Gzip, puedes implementar mod_deflate (que se supone es más rápido). Coloca el siguiente código en la parte superior de tu archivo .htaccess:

  1. SetOutputFilter DEFLATE

11. Agrega headers de expiración a los archivos

El siguiente código muestra cómo agregar fechas de expiración en las cabeceras de los archivos:

  1. Header set Expires "Wed, 21 May 2010 20:00:00 GMT"

12. Seteando la p√°gina por defecto

Puedes hacer que la p√°gina a mostrar ni bien un usuario llegue a tu sitio no sea la archiconocida “index”. Aqu√≠ seteamos “about.html” como p√°gina de inicio:

  1. #Serve Alternate Default Index Page
  2. DirectoryIndex about.html

13. Proteje tus archivos y directorios con una contrase√Īa

  1. #proteger un archivo con contrase√Īa
  2.  
  3. AuthType Basic
  4. AuthName "Prompt"
  5. AuthUserFile /home/path/.htpasswd
  6. Require valid-user
  7.  
  8. # proteger un directorio con contrase√Īa
  9. resides
  10. AuthType basic
  11. AuthName "This directory is protected"
  12. AuthUserFile /home/path/.htpasswd
  13. AuthGroupFile /dev/null
  14. Require valid-user

14. Hacer una redirección 301 de un dominio viejo a uno nuevo

Incluyendo este snippet en el .htaccess de tu viejo dominio, conseguir√°s redigir a otro nuevo (sin ser penalizado por Google por duplicar contenido, dado que el 301 es un aviso de “redirecci√≥n permanente”):

  1. # Redirigir de un dominio viejo a uno nuevo
  2. RewriteEngine On
  3. RewriteRule ^(.*)$ http://www.nuevodominio.com/$1 [R=301,L]

15. Forzar el cacheo

El siguiente snippet no va a incrementar directamente la velocidad de carga de tu sitio en general, pero s√≠ va a cargar m√°s r√°pido cuando el mismo usuario vuelva a visitarlo al enviar un status 304 cuando se pidan elementos que no han sido modificados. Puedes cambiar la frecuencia de cacheo al cambiar el n√ļmero de segundos (en este ejemplo se da una vez al d√≠a):

  1. FileETag MTime Size
  2. ExpiresActive on
  3. ExpiresDefault "access plus 86400 seconds"

16. Comprimir componentes al activar Gzip

Esto hace que sea m√°s r√°pida la carga de tu sitio:

  1. AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
  2. BrowserMatch ^Mozilla/4 gzip-only-text/html
  3. BrowserMatch ^Mozilla/4.0[678] no-gzip
  4.  
  5. BrowserMatch bMSIE !no-gzip !gzip-only-text/html

17. Quitar palabras o strings de una URL

En este ejemplo, quitaremos “category” de nuestras URL, es decir: http://tudominio.com/category/blue -> http://tudominio.com/blue

Agrega este código al final de tu .htaccess:

  1. RewriteRule ^category/(.+)$ http://www.tudominio.com/$1 [R=301,L]

18. Deshabilitar la navegación por los directorios de tu sitio

  1. Options All -Indexes

19. Redirigir los Feeds de WordPress a FeedBurner

  1. #Redirect wordpress content feeds to feedburner
  2.  
  3. RewriteEngine on
  4. RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
  5. RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
  6. RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/tufeed [R=302,NC,L]

20. Remover la extensión del archivo de una URL

Para que sea m√°s amigable al usuario y a los buscadores, por ejemplo “http://www.tudominio.com/autos.html” -> “http://www.tudominio.com/autos”

  1. RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

21. Quitar el “www” del dominio

  1. #remove www from URI
  2. RewriteEngine On
  3. RewriteCond %{HTTP_HOST} ^www\.dominio\.com$ [NC]
  4. RewriteRule ^(.*)$ http://dominio.com/$1 [L,R=301]

Más sobre .htaccess (en inglés):

Fuente: DevMoose


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (57)

  1. W@lter dice:

    Interesante aporte, gracias por compartir. Saludos Cordiales

  2. Darío cedeno dice:

    Muy buena recopilación. Casi indispensable tenerla a la mano en todo momento

  3. David dice:

    Amigos de elwebmaster.com cheken porfavor el titulo de la pagina puesto que en el post dice “21 hacks…”
    y en el dice “23 hacks…”

    reporte: 23/02/2010 a las 21:24 hrs (-6 GMT)[Hora del centro de México]

  4. Boloo dice:

    Hay que ver la de cosas que puedes hacer con .htaccess y sin plugins. Así de un vistazo ya voy a quitar 2. Saludos!

  5. Analía-san dice:

    Excelente art√≠culo ūüėõ

  6. Alejandra dice:

    Hola David. ¬°Muchas gracias! Ya corregimos el error.

  7. Argenis Alvarado dice:

    Requiero una orientaci√≥n inicial para crear un pagina WEB la cual contenga un peque√Īo
    programa de administracion de inmuebles, para mi es impotante conover los pasos iniciales- Gracias

  8. Alex dice:

    Me gustar√≠a leer un articulo m√°s detallado sobre las “Rewrite”. Como se puede conseguir que usuarios de web tengan p√°ginas personales con enlace tipo midominio.com/USUARIO sin que afecta a los dem√°s archivos de portal?

  9. Marco Garate dice:

    buen articulo, ya lo copie y paste para probar algunos gracias.

  10. Urko dice:

    Hola, en el #20 creo que te has dejado el RewriteRule.

    Saludos. Muy buena recopilación.

  11. Temas Interesantes dice:

    Excelente articulo!!

  12. Valen dice:

    Excelente como siempre…

  13. Alexander Ochoa dice:

    Saludos, muy buena recopilación, yo desconocía todas las potencialidades que aporta la configuración de este archivo.

  14. Manuel dice:

    EXCELENTE…. lo felicito y lo admiro… ya esta casi puesto. jejeje

  15. Marin dice:

    La mitad copiados de ac√° :S http://rafeekphp.wordpress.com/2009/06/06/16-great-htaccess-tricks-and-hacks/

  16. Yadir Gomez dice:

    Me salvo la vida Yeah! Gracias

  17. jonhy87 dice:

    Que pasa que no hay mas actualizaciones de este exelente sitio?

  18. Jose dice:

    Gracias por el articulo, justo necesitaba lo del hotlinking, que hay mucho gorrón suelto.

    Un saludo,
    Jose

  19. Snake dice:

    Gracias, algunos me los sabía, pero muchos no.

    La verdad me sorprende todo lo qeu se puede hacer por medio del htaccess :)

  20. Jose dice:

    Me ha sido de gran ayuda. Muchas gracias ^^

  21. Ver Anime Online dice:

    exelente esta publicacion gracias por el gran aporte

  22. COLORATE dice:

    Muy bueno .. gracias ..

  23. Civilgeek dice:

    Gracias por el dato me sirvi√≥ para hacer direccionamiento ———->

  24. Prof.Yeow dice:

    gracias! util y corriendo en mi paginas http://yeow.com.ar ūüėČ

  25. Mujer Busca Hombre dice:

    Este articulo esta muy intesante, te felicito!

  26. Mod rewrite « ideas compartidas dice:

    […] 21 hacks de htaccess que todo desarrollador deber√≠a conocer […]

  27. ImagesFreeHost.com dice:

    Muchas gracias, referente al articulo 5, sabes algun sitio web para descargar paginas de errores que esten bien y de calidad?

  28. Javine dice:

    Muy buena información, gracias por compartirla.

  29. Htaccess – Asegura tu contenido de tu web | chichote.com dice:

    […] Hace poco postie una soluci√≥n para crear marcas de agua con htaccess, php y la libreria gd. En esta oportunidad publico algunos script que fueron volcados en la web elwebmaster.com. […]

  30. Javi dice:

    Extraordinarios consejos me quedo con la duda de si podemos redirigir a una p√°gina a un entorno de ip’s y as√≠ personalizar seg√ļn nacionalidades, crees que se podr√≠a? Seguir√© tu blog

  31. Francisco dice:

    Gracias , me has salvado tenia un poblemilla y con estos codigos me va perfecto

  32. oscar antepara dice:

    esta bueno

  33. J.Pablo dice:

    Hola, Gracias por la información!!! me queda una duda.Después de usar .Htaccess, tengo problemas con el traductor. Tengo varios lectores que usan el traductor de google, pero al momento de traducir desaparecen las imagenes, (nos se ven) La primera página se ve bien a primera vista, pero al entrar a las entradas desaparecen todas las imagenes.
    Sabes de algun código para dar permiso al traductor o alguna otra solución?

  34. Eloy Romero | Negocios por Internet dice:

    Que interesante..!! muchas veces temenos problemas o necesitamos una de estas hacks, creo ahora tenemos a la mano. Gracias por este aporte tan grandioso.

    Un abrazo,

  35. Marco dice:

    Oigan amigos del Webmasters les quiero hacer esta pregunta;
    ¬°Como hago para que en vez de mostrar http://www.mipagina.com/quienes_somos.asp?
    solo me muestre http://www.mipagina.com/conozcanos-mejor-para-darnos-preferencia

    La pagina esta hecha en html y asp.net.

    O para que me entiendan mejor a mi pregunta como le hago (como le hicieron ustedes) para que la url de este post: “21 hacks de htaccess que todo desarrollador deber√≠a conocer” se los mostrara asi;

    http://www.elwebmaster.com/general/21-hacks-de-htaccess-que-todo-desarrollador-deberia-conocer

    Me podrian decir el procedimiento paso a paso por favor.

    Un saludo de antemano soy fan de ustedes, me encanta leer sus articulos en ratos libres.

  36. sosi dice:

    Informaci√≥n muy √ļtil justo lo que andaba buscando, gracias un saludo.

  37. Fernando dice:

    Este post me aclara bastante el uso de .htaccess muchas gracias! Un saludo desde Guatemala! :)

  38. Anuncios Clasificados dice:

    Hola, Por favor necesito saber cual es el ” RewriteRule ” para los acentos, P.J como estos √Ď-N-A-√Ā.

    Gracias.

    Jordi.

  39. Programador PHP dice:

    Muchas gracias por el excelente art√≠culo. Algunos de ellos no los conoc√≠a y me parecen super √ļtiles y seguramente los utilice en algunos proyectos.

  40. Anonimo dice:

    Muchas gracias, un aporte MUY INTERESANTE y MUY bien explicado.
    Gracias.

  41. linksyenlaces dice:

    Cuanto truco junto! Esta gu√≠a ahorra 2d√≠as de b√ļsqueda intensa. El autor del art√≠culo debe de cerrar la puerta de casa con .htaccess!

  42. Kai dice:

    Gracias por la información es realmente interesante.

  43. David Dise√Īador Web dice:

    Yo quitaría el hotlinking, ya que supone nuevos enlaces a tu página y paso de linkjuice a tu dominio.

  44. Yoseft dice:

    Hola.. porfavor alguna sugerencia para arreglar este problema en mi host
    ejemplo
    http://www.pagina.com/libro.php OK
    pero cuando pones
    http://www.pagina.com/libro.php/libro.php como encuentra el file se muestra mal
    como hacer una regla que no muestre nuca esos casos de file.php/file.php/file.php/…
    Gracias!

  45. Dise√Īo Web dice:

    Muy buenos, aunque no encontre solución a mi problema!! Saludos!!

  46. Dise√Īo web dice:

    La configuración de Apache da para mucho.

  47. Mario dice:

    Hola elWebmaster.com
    ayer converse con una persona que descargo toda mi web a su pc en un par de minutos usando un programa llamado hitrack (si es que no me equivoco) y me dijo que necesita poner seguridad en mi hosting por medio de .htaccess para que nadie pueda bajarla…

    aunque mi web no tiene informacion “importante”
    seria importante para mi aprender dicha seguridad
    en mi web tengo un index con 24 carpetas de ejemplos web

    ojala puedas orientarme al respecto, gracias…¬°¬°¬°¬°

  48. a2clicks dice:

    ¬ŅEn los puntos 10 y 16 se mencionan dos formas de comprimir el sitio, se puede poner ambas o hay que elegir una?

  49. snich66 dice:

    Puse en practica, lo contrario a lo que dices, para solucionar el error 403 forbidden, revisando htacces descubri que solo permitia a 10 IPs entrar me sorprende que funcionara tanto tiempo. aun sin comprobar pero ya siento que solucione el problema

  50. pua___ dice:

    Hola, gracias por compartir. Me preguntaba si podr√≠a restringir el acceso a una carpeta con contrase√Īa pero solo a ciertas ip. M√°s concretamente lo que me gustar√≠a es dejar a ciertas ip acceder sin m√°s pero el resto con contrase√Īa.
    Muchas gracias!

  51. Ricardo Netto dice:

    Hola, gracias por los consejos, en general todos me fueron de utilidad. Pero el que quit√≥ un dolor de cabeza fue el n¬į 20, resulta que hay un sitio que cita mis p√°ginas y escribe todas las URL sin el ‚Äú.php‚ÄĚ. Eso significaba muchos errores para Google.
    Hay que lidiar con los errores de otros Webmaster y con los caprichos de Google.
    Saludos

  52. tontonsan9 dice:

    gracias!

  53. Kal Gaham dice:

    Muy buen articulo, gracias ! los implementare en mi sitio web.

  54. Alberto Gonzalez dice:

    Buenas, me gustaria saber si se puede hacer algo para que el htaccess de la raiz no afecte sobre un directorio

  55. Anónimo dice:

    Que buen post. Gracias por la informaciůn pues me estoy intentando informar sobre estos temas. Besos

  56. Chritian Asmat Vidarte dice:

    Muchas gracias por esta valiosa información , Saludos

  57. Príncipe_Azul dice:

    Hola, muchas gracias por el aporte!! es muy √ļtil el archivo .htaccess para nuestro sitio, ya que cuenta con muchas configuraciones bastantes importantes!!!

    Saludos y gracias!! : )

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder