Tras leer un artículo en www.thomsonchemmanoor.com paso a traducirlo/adaptarlo y adaptarlo pues puede ser útil en algún momento para desarrolladores, programadores y administradores de sitios web. Se trata de una colección de directivas y configuraciones disponibles dentro de los ficheros .htaccess para realizar tareas cotidianas en sitios web de gran utilidad.
Crear una página de error 404 personalizada
Mediante .htaccess en un servidor linux bajo apache es una tarea sencilla. Usando un editor de texto simplemente crea un fichero con el nombre .htaccess. Las páginas de error personalizadas dan a tu sitio web mayor profesionalidad permitiendo redirigir los errores a un lugar que permita al usuario volver a la página principal, facilitar ayuda, etc.
Añade las siguientes líneas a tu fichero .htaccess, teniendo en cuenta que las páginas personalizadas de error se encuentran en /error/
ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php
Configurar la zona horaria del servidor
SetEnv TZ America/Houston
Bloquear IPs usando .htaccess
En ciertos momentos suele ser necesario bloquear el acceso al sitio web o determinados directorios de u una IP o rangos, para hacerlo simplemente añade lo siguiente a tu fichero .htaccess configurando las IPs que desees:
allow from all deny from 145.186.14.122 deny from 124.15
Redirecciones amigables para SEO con redirects 301 permanentes
Esto es útil para direcciones ya no disponibles, antiguas o movidas a otra URL:
Redirect 301 /d/file.html http://www.htaccesselite.com/r/file.html
Configurar el email del administrador del servidor
ServerSignature EMail SetEnv SERVER_ADMIN default@domain.com
Bloquear Hotlink con .htaccess
Muy útil para evitar que otros sitios webs utilicen las imagenes de tu servidor y consuman tu ancho de banda, ten en cuenta que si usas RSS tendrás que permitirle la recogida de imagenes:
Options +FollowSymlinks # Protect Hotlinking RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?domainname\.com/ [nc] RewriteRule .*\.(gif|jpg|png)$ http://domainname.com/img/hotlink_f_o.png [nc]
Bloquear acceso de un determinado User Agent
Un agente de usuario es una aplicación informática que funciona como cliente en un protocolo de red; el nombre se aplica generalmente para referirse a aquellas aplicaciones que acceden a la World Wide Web. Los agentes de usuario que se conectan a la Web pueden ser desde navegadores web hasta los web crawler de los buscadores, pasando por teléfonos móviles, lectores de pantalla y navegadores en Braille usados por personas con discapacidades.
## .htaccess Code :: BEGIN ## Block Bad Bots by user-Agent SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR] SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR] SetEnvIfNoCase user-Agent ^Zeus [NC] Order Allow,Deny Allow from all Deny from env=bad_bot ## .htaccess Code :: END
Redirigir a los visitantes a otro sitio diferente excepto ciertas IPs
Muy útil para cuando el webmaster está realizando tareas de mantenimiento, redirige a todos los visitantes a la página temporal de mantenimiento mientras que desde su IP sigue trabajando en la página web normal:
ErrorDocument 403 http://www.youdomain.com Order deny,allow Deny from all Allow from 124.34.48.165 Allow from 102.54.68.123
Evitar mostrar el cuadro de solicitud de descarga
Con este código evitas que al pinchar en un enlace (por ejemplo un pdf o pelicula) evitas que salga el cuadro preguntando si quieres descargarlo.
AddType application/octet-stream .pdf AddType application/octet-stream .zip AddType application/octet-stream .mov
Cambiar el tipo de fichero a una extensión
Podemos hacer que un determinado tipo de fichero actue como si fuera otro, por ejemplo podemos hacer que las imágenes jpg, los index.html o default.cgi actuen como php
ForceType application/x-httpd-php SetHandler application/x-httpd-php
Bloquear acceso al fichero .htaccess
El título lo dice todo, bloquear accesos indeseados a nuestro fichero .htaccess, redirigiendolos a un error 403
# secure htaccess file order allow,deny deny from all
Proteger acceso a un determinado tipo de fichero
Si por ejemplo quisieramos que nadie pudiera acceder a un fichero llamado default.jpg
# prevent access of a certain file order allow,deny deny from all
Evitar la navegación de directorios
Si un determinado directorio no tiene página «index» válida, es probable que nos deje listar los ficheros de la carpeta, para evitar esto podemos cortar la opción de navegación de directorios y mostrar un «Forbidden»:
# disable directory browsing Options All -Indexes
Cambiar página de inicio o por defecto
Si por ejemplo en vez de index.html queremos que la página de inicio sea default.html:
# serve alternate default index page DirectoryIndex default.html
Proteger directorios o ficheros con password
Con esta opción podemos solicitar usuario/clave para acceder a una determinada sección de la página web. Existen multitud de webs que hacen esto por tí automáticamente y te facilitan el código, por ejemplo .htaccess Generator. Aquí un ejemplo:
# to protect a file AuthType Basic AuthName “Prompt” AuthUserFile /home/path/.htpasswd Require valid-user # password-protect a directory resides AuthType basic AuthName “This directory is protected” AuthUserFile /home/path/.htpasswd AuthGroupFile /dev/null Require valid-user
Redirigir viejo dominio a uno nuevo
Simple y efectivo, si hemos cambiado el nombre de dominio de nuestra página web redirigiremos todo el tráfico que siga llegando al viejo hacia el nuevo:
# redirect from old domain to new domain RewriteEngine On RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L]
MUY util tenerlo a mano.
Muchas gracias :)
Mil gracias esta super discutida la información proporcionada
aqui tambien teneis una web donde podeis hacer vuestro propio .htaccess online :D http://htaccess-online.blogofsysadmins.com
Genial tutorial. Pero en mi server tengo un problema; no puedo configurar las páginas de error (404) si las pongo en otro directorio que no sea el raíz, por ejemplo como en el tutorial en el directorio «error» (además no puedo hacer que esta página obtenga un archivo CSS externo, sino que debo poner los estilos dentro del XHTML). ¿Será problema de configuración del servidor, o estaré haciendo algo mal?
De todas formas pude configurarlo poniéndolo en el directorio raíz, pero me gustaría colocarlo en el directorio «error». ¿Alguna sugerencia? Muchas gracias.
Hola Luciano,
Y pondiendolo así:
ErrorDocument 404 http://www.tudominio.com/error/404.html
Gracias a personas como ustedes es que todos podemos aprender. Muy agradecido por la información, esta muy completa.
Muy buenos trucos, es bueno conocerlos me seran muy utiles
saludos
Muchas gracias por compartir esta información.
Un cordial Saludo.
Gracias por la informacion muy buena, un saludo
Excelente info al respecto me ayudo para terminar de configurar mi aplicacion para doctores ya que 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 cakephp
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 http://demo.pacientesweb.com/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
La verdad es que está muy completo, pero para principiantes como yo, es un poco complicado. ¿donde puedo encontar más información, para novatos?
Excelente informacion. Muchas gracias por compartir.
Saludos.
una pregunta.. si sin kerer en unos de mis sitios subidos en hostinger.. borre.. este archivo-…
como puedo recuperar lo.. ya ke les copio a las otras paginas y no funcionan..
ayuda- o asesoramiento ..
jeje grax!
una pregunta como puedo editar mi error 404
si en unas de mis pagina subidas al hostinger.com
sin kerer borre mi .htaccess
komo lo consigo de nuevo.. ya ke le pongo de mis otras pag. y no sirven :/
ayuda pliss. desde ya grax! :)
no puedes. Crealo de nuevo. Si es de pago mira en las copias de seguridad que crea el servidor periodicamente.
Gracias por la info.
Muy buena
Muy completo, gracias por compartir.
Muy buen tutorial, nos viene bien tener un buen arsenal de códigos para poder tunear nuestro archivo .htcess
Muy buen tutorial, nos vino muy bien en nuestro proyecto Hacienda Puerta Grande. Un cordial saludo.