Htaccess es el nombre de un archivo de texto que se coloca en el directorio de una página web, para configurar algunos cambios en el servidor de alojamiento web y a través de nuestro panel de control de nuestro servicio de hosting. Cada línea del archivo contiene una regla. Cada regla se aplica al directorio donde se encuentra únicamente, incluyendo sus subdirectorios y ficheros.
Crear un archivo htaccess es muy sencillo, abrimos el bloc de notas escribimos las directivas y lo guardamos con el nombre “.htaccess” (incluye las comillas, para guardarlo sin la extensión .txt). Ahora, sólo debemos subir el archivo a nuestro servidor web Apache o fichero dentro de nuestro administrador de archivos de cPanel por ejemplo. Esto se procesará cada vez que un cliente realice una petición.
¿Cómo funciona el archivo .htaccess?
El archivo htaccess localizado en el administrador de archivos de tu servidor web o hosting compartido consultará y hará exactamente lo que este archivo le indique.
Este archivo .htaccess puede existir en un directorio principal o directorio raíz y todos los directorios web harán según lo que este archivo indique. También es posible crear archivos htaccess para ciertos directorios en especifico si se desea que realicen otras instrucciones. Estas instrucciones solo afectarán a dicho directorio y subdirectorios asociados a este. Los demás directorios no se verán afectados.
Si por ejemplo dentro del archivo htaccess colocamos un código de configuración que redirija a los visitantes a otro sitio web. El servidor apache al consultar este archivo oculto redireccionará a los visitantes a la pagina web que has indicado en dicho código htaccess.
Pero si por el contrario existe algún error de conexión con esta pagina que hemos indicado. El servidor consultará el código nuevamente y como resultado mostrará el error 404. Incluso es posible editar estas paginas de error y hacer el llamado a través del archivo .htaccess.
E
- Redireccionamiento
Imagina que necesitas enviar a todos tus visitantes a una página en especial, mientras realizas el mantenimiento de tu sitio web:
order deny,allow
deny from all
allow from 123.123.123.123
ErrorDocument 403 /pagina.html
<Files page.html>
allow from all
</Files>
Reemplaza el 123.123.123.123 con tu dirección IP y «pagina.html» con el nombre de la página que deseas que tus visitantes vean. - Bloqueo de determinadas direcciones IP
Pero el redireccionamiento no lo es todo. Ahora imagina, ¿Qué sucedería si hay un crawlers o un boot spam que sobre carga tu servidor con peticiones inútiles o consultas fastidiosas? ¿Cómo los bloqueamos?
Order allow, deny
Deny from 123.123.123.123
Allow from all
Donde 123.123.123.123 es la dirección ip a bloquear. Si se percatan, las directivas son muy similares a la anterior, con la diferencia, que en la primera denegamos o estaremos bloqueando el acceso a todos los visitantes, y en la otra se le dará acceso a determinadas o una sola IP. - Transfiriendo Page Rank
Esto se aplica a los casos en que hemos movido o renombrado una página web en nuestro sitio y queremos que todos nuestros visitantes sean enviados a la nueva url. La alternativa, que incluye la transferencia de PageRank, para el posicionamiento en buscadores, es:
Redirect 301 /pagina_antigua.html http:// tusitio.com/ pagina_nueva.html
Con el redireccionamiento 301, la página nueva no pierde el valor ganado por la página antigua. - Prevenir la navegación en un directorio
Esto es algo que a veces se nos olvida. Cuando un directorio no tiene la página de index, cualquier visitante puede observar los archivos contenidos en el directorio, y navegar a través de ellos. Si nosotros queremos prevenir esto, sólo debemos escribir lo siguiente:
Options All -Indexes - Página de Error 404 personalizada
Por defecto, el servidor Apache muestra una página de error 404 “404 File Not Found”, cuando nuestros visitantes acceden a una página que en el momento no existe.
Sin embargo, la página por defecto es poco usable y no deja una buena impresión, por lo que podríamos crear una página especial a la cual redirigir cada vez que se produce el error 404.
ErrorDocument 404 /404.html
Donde 404.html es el nombre de la página personalizada, que queremos que nuestros visitantes vean. - Reescribir URLs amigables
Cuando tenemos dos urls amigables, por lo general se recomienda escoger la más corta y fácil de recordar. Por ejemplo:
RewriteEngine on
RewriteRule ^contacto/$ /pages/contacto.html [L]
Aquí le decimos al servidor Apache, que active el modulo mod_rewrite (RewriteEngine on) y muestre el contenido de “/pages/contacto.html” cada vez que cualquier visitante ingrese a “http://tusitio.com/contacto”. Con la bandera L, detenemos el proceso si es que se cumple la condición, de esta manera ahorramos recursos. Más detalles: Urls amigables con PHP. - Directorios restringidos con contraseñas
En los casos en que necesitemos permitir el acceso a un directorio o omitir la visualización nuestra pagina de nuestra página de inicio sólo a determinadas personas, podemos configurar nuestro servidor apache para cubrir esta necesidad. Básicamente, son 2 pasos los que hay que seguir:
– Crear el .htaccess, en el directorio a restringir
AuthUserFile /full/path/to/.htpasswd
AuthName «Ingresar»
AuthType Basic
require user nombre_de_usuario
El archivo .htpasswd no debe estar en un directorio accesible a cualquier cliente web. No se olviden de probar esto.
– Crear el fichero .htpasswd
El ficher .htpasswd debe contener el nombre de usuario y la contraseña, que Apache solicitará. La contraseña debe estar cifrada.
nombre_de_usuario:password_encriptado - Mas ejemplos de rewriteengine on rewritecond
El siguiente código redirigirá todo el contenido de un nombre de dominio a otro:RewriteEngine On
RewriteRule ^(.*)$ http://www.nuevodominio.com/$1 [R=301,L]
El siguiente redirecciona el sitio de http www a www y con SSL:
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# o también
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Importante: Para realizar modificaciones en el archivo .htaccess es necesario tener conocimientos de programación previamente porque cualquier modificación podría afectar la visibilidad de la pagina web.
Tiempo de lectura estimado: 5 minutos