Spanish SEO Blog - SEO en español

Blog de SEO en español para la comunidad de América Latina y España con la intención de difundir novedades y reflexiones propias sobre el mundo del SEO y SEM

Con la tecnología de Blogger.

sábado, 2 de octubre de 2010

.htaccess, que es y para que sirve

5 comentarios :
Normalmente cuando navegamos por algún sitio o blog sobre posicionamiento web, SEO, o incluso programación web, vemos que frecuentemente se menciona el .htaccess. Tan famoso será? Veamos los motivos de su reiterada presencia en los sitios web.

Un fichero .htaccess (hypertext access), también conocido como archivo de configuración distribuida, es un fichero especial, oculto, popularizado por el Servidor Web Apache, que nos permite definir diferentes directivas de configuración para cada directorio (con sus respectivos subdirectorios) sin necesidad de editar el archivo de configuración principal de Apache.

Para crear un documento .htaccess se debe abrir una nueva hoja .txt y a la hora de guardarla darle el hombre de .htaccess (importante agregar el punto al inicio).

Archivo .htaccess



Usos frecuentes del .htaccess

    * Restringir el acceso a directorios
    * Restringir el acceso a IPs o ISPs
    * Creación de URLs Amigables (semánticas)
    * Manejar errores del servidor
    * Crear redirecciones estáticas
    * Controlar Cache
    * Evitar hotlinking
    * Forzar Dominio sin WWW



Código para hacer ajustes a un sitio web con .htaccess

Lo primero es escribir estas directrices al inicio del archivo:

     #### START REDIRECCIONES #####
     Options +FollowSymLinks
     RewriteEngine on

Control de acceso
Para deshabilitar totalmente el acceso a una carpeta determinada, se debe crear un archivo .htaccess en esa carpeta que contenga
    #deny all access
    deny from all
Si se desea permitir el acceso desde una IP específica
    #deny all access
    deny from all
    allow from 10.0.0.1
o para un rango específico de IPs
    allow from 192.168.0.0/24
También se puede bloquear el acceso a un archivo específico
    Order allow,deny
     Deny from all


Activar compresión
Se puede habilitar la compresión de datos inherente de PHP para ahorrar ancho de banda
    php_value zlib.output_compression 16386

Esconder archivos
Para deshabilitar el acceso a un archivo en particular se puede utilizar una expresión regular y la directiva Files para denegar acceso a cualquier archivo que comience con .ht
Se puede modificar esto para restringir un archivo en particular (como archivos de configuración, robots.txt, archivos de logs o lo que se desee).
   Order allow,deny
    Deny from all
    Satisfy All


Páginas de error HTTP 404 personalizadas
Para redireccionar a los visitantes cada vez que se encuentran con una página de error HTTP 404, se debe utilizar éste código:
    ErrorDocument 404 /errores/noencontrado.html
Esto redirige al usuario hacia /errores/noencontrado.html cada vez que sucede un error 404. Además, se puede redefinir para que capture otros errores http (403, 5000, etc).
Para evitar un problema con IE, asegúrense de que esta página personalizada supere los 512 bytes de tamaño.

Bloqueo de referers maliciosos. Evita el hotlinking
Si se desea bloquear algunas partes del sitio de cualquier referer malicioso:
   RewriteEngine on
    RewriteCond %{HTTP_REFERER} ejemplo\.com [NC,OR]
    RewriteCond %{HTTP_REFERER} otroejemplo\.com
    RewriteRule .* - [F]

Utilizando el motor rewrite (de reescritura) se denegará el acceso al sitio a cualquier visitante que venga de chicomalo.com u otrositiodesagradable.com. Para evitar el robo de ancho de banda, se puede bloquear el acceso a un archivo en particular (o extensión de archivos).
   RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://([-a-z0-9]+\.)?example\.com[NC]
    RewriteRule .*\.(zip|mp3|avi|wmv|mpg|mpeg)$ http://www.example.com/images/nohotlink.gif [R,NC,L]

Esto dice: “si el visitante no proviene de misitio.net, entonces redirige todos los pedidos de archivos (zip, mp3, avi, wmv, mpg, mpeg) a una imagen que dice “No permitimos hotlinking” De esa forma, puedes redirigir a una página, o lo que desees, o puedes modificar la lista de extensiones de archivo para incluir/quitar otros archivos. Cuidado: cuando se decide bloquear el hotlinking de imágenes recuerda que puedes estar bloqueando todo tráfico fuera del alcance de tu dominio. Por ejemplo, si se posee un archivo de sindicación tomado por bloglines necesitarás modificar la regla para permitirles a los lectores obtener las imágenes - o el RSS se verá mal. 



Carpetas con archivo .htaccess



No mostrar ‘www’
Es importante eliminar el www que se encuentra en una gran cantidad de sitios web, no por una cuestión de mejor posicionamiento, sino por simplicidad y como una forma de expresar las direcciones web que desde hace años se está impulsando. Para hacer esto, basta con una simple regla de re-escritura:
   Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{http_host} ^www\.example\.com[nc]
    RewriteRule ^(.*)$ http://example.com/$1 [r=301,nc]


Escondiendo la extensión del lenguaje de scripting
Se puede aumentar la seguridad cambiando la extensión de los scripts para que los visitantes desconozcan qué lenguaje estás utilizando:
    # Make PHP code look like unknown types
    AddType application/x-httpd-php .cool

De esta forma, los archivos .cool serán tratados como si fuesen archivos PHP. Se deben renombrar los archivos que se quiera con esta nueva extensión.

Cambiando la página por defecto
Se puede utilizar esta instrucción para cambiar la página por defecto (el orden es importante)
    DirectoryIndex inicio.html index.htm index.html index.php

Evitando el error 500
Pasando el juego de caracteres se evita el mostrar un error 500
    AddDefaultCharset utf-8

Directiva CheckSpelling (Control de Ortografía)
Esta directiva puede ser útil para auto-corregir errores de ortografía simple en la URL
    CheckSpelling On

Agregar sumario MD5
Si no se está preocupado por problemas de performance, se puede agregar un cálculo de llave MD5 para agregar un MIC (Control de Integridad de Mensaje) en cada pedido. Esto es útil para controlar la integridad del mensaje.
    ContentDigest On

 

Algunos consejos


* Mantener el archivo .htaccess pequeño: este archivo es procesado por el servidor web en cada pedido (pudiendo causar problemas de performance).
* Mantener el archivo .htaccess organizado. Utiliza comentarios (líneas que comienzan en #) y tratar de ser consistente. Es complicado entender un archivo .htaccess desorganizado una vez que crece lo suficiente.
* Cuando se utilicen reglas de reescritura de URLs, agrega la opción [L] a aquellas páginas finales (como la de hotlinking y demás). Esto le dirá al servidor que no procese más reglas (aumentando la performance).
* Cuidado con la herencia: el archivo .htaccess a nivel raíz es aplicado también en las carpetas, cualquier regla .htaccess en la carpeta puede reemplazar las reglas de la carpeta raíz.
 

Fuente: http://enespanol.com.ar/ - http://es.wikipedia.org/

5 comentarios :

Anónimo dijo...

Con htaccess puedes hacer maravillas desde proteger tu web, crear url limpias e incluso crear urls virtuales muy bueno para posicionar contenidos dinamicos.

Os dejo mi nuevo directorio seo para que cojais rank.

Nuevo directorio seo:

http://directorio.calzadosarpe.com

saludos...

Taytus dijo...

Buena data. Gracias por la info.

Josepzin dijo...

Un tema relacionado al .htaccess, aunque no directamente con el artículo, pero lo comento por si le sirve a alguien.

Una web hecha con CakePHP, totalmente dependiente del htaccess fue migrada de servidor, de uno compartido a uno dedicado. El tema es que al instalar la web no funcionaba, lo primero que pense es que era algo relacionado al htaccess. El problema es que yo no sé de administrar servidores asi que despues de dar varias vueltas y probar distintas cosas dimos con la solucion.

En definitiva, cuando hay problemas con el htaccess lo primero es mirar esto: http://murci.wordpress.com/2006/11/11/cuando-no-funciona-el-htaccess-en-apache/

Anónimo dijo...

Para que sirve el atributo %

SEO Federico Caramella dijo...

Realmente, no se si tiene alguna finalidad específica el %.
Se utiliza siempre con RewriteCond, pero no se si en alguna otra sentencia del código, por lo cual no podría decir cuál es su función..

Saludos!