11 abril 2014

Trucos con .htaccess: Cache, Restricciones, Redirección, Dominio

Los archivos .htaccess (Archivo de Acceso de Hipertexto) es una herramienta de configuración muy potente en el servidor web Apache. El servidor web Apache tiene un número de opciones de configuración que están disponibles para el administrador del servidor. El htaccess. es un simple archivo de texto ASCII situado en el directorio raíz del sitio Web. Podemos puede crear y modificar un archivo. htaccess con un editor de texto como el bloc de notas.
Aquí, en esta entrada del blog les dejo útiles consejos y trucos para el .htaccess  para configurar su servidor web.
Como un archivo .htaccess es muy potente y un error de sintaxis en su configuración ligera puede provocar un mal funcionamiento grave en el servidor. Para evitar esto aconsejamos  mantener una copia de seguridad de todos tus archivos desde el servidor antes de trabajar con el archivo htaccess.

Crear paginas de error personalizadas
Creación de una página de error personalizado con. htaccess en Apache Linux es una tarea muy sencilla. Con un editor de texto editamos nuestro archivo .htaccess. Podemos dar a las paginas de error diseños personalizados con el fin de atrapar a los visitantes que llegan a nuestro sitio web después dar clic en un enlace roto.

    ErrorDocument 401 /error/401.php
    ErrorDocument 403 /error/403.php
    ErrorDocument 404 /error/404.php
    ErrorDocument 500 /error/500.php

Configurar la zona horaria en el servidor

SetEnv TZ America/BuenosAires


Bloquear direcciones IP Utilizando htaccess
En algún momento debemos  evitar que determinadas IP accedan a nuestro sitio. Esta tarea es bastante simple. Todo lo que debemos  hacer es poner el siguiente código dentro nuestro archivo htaccess.

    allow from all
    deny from 192.168.14.122
    deny from 10.15

Cuando alguien intenta acceder a su sitio desde una IP prohibida  este recibirá un mensaje de error 403 de acceso prohibido (403 error access forbidden).

Redirecciones 301
Redirecciones permanentes para mover enlaces antiguos o rotos

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

Establecer un correo electronico para el administrador del servidor
El uso de este código se puede especificar la dirección de correo electrónico por defecto para el administrador del servidor.

    ServerSignature EMail
    SetEnv SERVER_ADMIN default@domain.com

Guardar las Imágenes en la Cache del Navegador del Visitante
Para conseguir que las imágenes permanezcan en el navegador del usuario durante 1 semana y para conseguir que la visualización de nuevas páginas dentro de nuestro dominio sea casi de forma instantánea, añadiremos el siguiente código a nuestro archivo .htaccess:


ExpiresActive On
ExpiresDefault A604800

ExpiresDefault “access plus 7 day”;


Utilizando este sencillo código, la navegación dentro de las páginas de nuestra Web será mucho más rápida, ya que cualquier imagen que sea mostrada en la pantalla del visitante de nuestra Web quedará guardada en la Cache de su navegador durante una semana y no se volverá a solicitar petición al Servidor

Protección Hotlinking con htaccess
Es muy importante porque cualquier persona que realece un enlace a las imágenes de nuestro sitio web consumira nuestro ancho de banda de su servidor. El siguiente código nos ayudará a prevenir eso.

    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 todas las solicitudes de agente de usuario
mediante la creación de un perfecto lista de prohibición de htaccess, puedes impedir que todos los agentes de usuario no deseados que mantendrá su carga en el servidor abajo. También puedes ver este hilo interesante sobre el mundo webmaster acerca de Thea 228 lista de usuarios de la prohibición de los agentes.

    ## .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 todas  IP hacia otros sitios.
Si deseamos redirigir todos los visitantes a una IP diferente. Y tambien dar acceso a otras ip a nuestro sitio web, el siguiente codigo les permitira realizar dichas acciones.

    ErrorDocument 403 http://www.youdomain.com
    Order deny,allow
    Deny from all
    Allow from 192.168.8.165
    Allow from 10.154.68.123

Forzar a que aparezcan las “www” en tu Dominio
Esta técnica se aplica para Solucionar la duplicidad de contenido en nuestro Dominio, es decir, cuando se accede al mismo contenido utilizando las “www” y cuando se accede sin usar las “www”.

Un ejemplo lo tienes en esta misma página. Intenta quitar en la dirección url que aparece en tu navegador las “www” de esta página, verás que automáticamente te redirige a la página con las “www”. Para conseguirlo, simplemente agrega el siguiente código:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^tudominio.com$ [NC]
RewriteRule ^(.*)$ http://www.tudominio.com/$1 [R=301,L]

El principal problema que puedes tener si no incluyes este código en tu .htaccess es que si un usuario inicia sesión en dominio.com y luego va a www.dominio.com, las cookies no se reconocerán y el usuario deberá volver a iniciar sesión.

No mostrar solicitud de descarga con Htaccess
Por lo general, cuando intenta descargar un archivo desde un servidor Web, quien recibe la solicitud tambien recibe un mensaje de  pregunta si desea guardar el archivo o abrirlo. Si deseamos que dicha confirmacion no aparezca en los usuarios clientes podemos utilizar el siguiente código en el archivo. htaccess.

    AddType application/octet-stream .pdf
    AddType application/octet-stream .zip
    AddType application/octet-stream .mov

Cambiar el tipo de archivo con htaccess
Hacer que  cualquier archivo de un cierto tipo de archivo como por ejemplo image.jpg, index.html, default.cgi por medio de esta propiedad htaccess podemos hacerlos pasar como si tubieran extencion php.

    ForceType application/x-httpd-php
    SetHandler application/x-httpd-php

Bloquear el acceso a nuestro archivo .htaccess
Mediante la adición de que el siguiente código a nuestro archivo htaccess evitaremos intentos de acceso a este archivo. Esta capa adicional de seguridad protege su htaccess mostrando un mensaje de error 403 en el navegador.

    # seguridad para nuestro archivo htaccess
   
    Order allow,deny
    Deny from all
   


Proteger el acceso a ciertos archivos específicos en el servidor
Esto se puede hacer añadiendo el código de abajo mencionados. Por ejemplo, si deseamos bloquear algun archivo con alguna extension determinada, esto evitará la visualización de estos archivos.

    # prevenir acceso a archivosecreto.txt
   
    Order allow,deny
    Deny from all
   


Nota: esto afectaría a cualquier archivo con el nombre “archivosecreto.txt” que se encuentre en el servidor.

Además, usando la directiva FilesMatch, podes proteger archivos con determinadas extensiones:

    # prevenir acceso a ciertos archivos
   
    Order Allow,Deny
    Deny from all
   


Impedir el acceso a la navegación no autorizada
Este es un truco muy util con nustro archivo .htaccess nos ayuda a impedir que los agentes o usuarios puedan ver todos los documentos en un determinado directorio.

    # deshabilitar navegacion por directorios
    Options All -Indexes

Configuración de la página por defecto
Podemos configurar la página predeterminada de un directorio. Por ejemplo, en el código de la página por defecto se establece como lugar de about.html en lugar de index.html

    # alternativa para pagina principal
    DirectoryIndex about.html

 
 Podemos crear una autenticación para el acceso a determinados archivos y directorios. El código tiene ejemplos de la protección de contraseña de un solo archivo y protección de contraseña para un directorio entero.

    # proteger un archivo

    AuthType Basic
    AuthName “Prompt”
    AuthUserFile /home/path/.htpasswd
    Require valid-user


    # proteger con contraseña un directorio
    resides
    AuthType basic
    AuthName “This directory is protected”
    AuthUserFile /home/path/.htpasswd
    AuthGroupFile /dev/null
    Require valid-user

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

SetOutputFilter DEFLATE


Agrega headers de expiración a los archivos
El siguiente código sirve para agregar fechas de expiración en las cabeceras de los archivos:

Header set Expires "Wed, 21 May 2015 20:00:00 GMT"

Quitar palabras o strings de una URL
En este ejemplo, quitaremos “categoria” de nuestras URL, es decir: http://dominio.com/categoria/carpeta -> http://dominio.com/carpeta
Añade este código al final de tu .htaccess:

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

Basado en: http://www.blog.pc-serveis.es/programacion-web/trucos-con-htaccess-cache-restricciones-redireccion-dominio

1 comentario: