A continuación te enseñamos algunas de las operaciones básicas con .htaccess que puedes necesitar de forma frecuente
Cambiar la página por defecto
Se puede utilizar esta instrucción para cambiar la página por defecto, en nuestros servidores el fichero a cargar por defecto es index.html y a continuación index.php, no obstante, con esta instrucción puedes indicar cuál será el primero en cargar de izquierda a derecha.
DirectoryIndex inicio.html index.htm index.html index.php
Redireccionar el tráfico web
Si necesitas cambiar contenido de sitio en tu web, pero necesitas que los usuarios puedan seguir accediendo con la URL antigua, puedes crear la siguiente regla para redireccionar el tráfico
Redirect /antiguo.php http://sitio.com/nuevo.php
Redirección 301 manteniendo estructura de directorios
Esta redirección es especialmente útil cuando únicamente cambiamos el nombre de dominio de nuestra web y queremos que la redirección sea lo más transparente posible para los visitantes.
redirectMatch 301 ^(.*)$ http://example.com/$1
Supongamos que estamos trabajando en una web con el nombre “webantingua.com”. Con esta regla, cualquier URL de tu dominio, incluidas las que llevan la ruta a un directorio o recurso concreto de la web (por ejemplo http://webantingua.com/blog) serán redireccionadas al nuevo dominio manteniendo la estructura de la URL.
Es decir, un usuario que acceda a http://webantingua.com/blog será redireccionado a http://example.com/blog.
Limitar los tipos de ficheros que pueden subirse a un directorio
En ciertos formularios de la web podemos solicitar al usuario la subida de ficheros como pueden ser fotos o documentados de texto con un formato concreto, una forma de asegurarse de que el fichero que nos envían es el adecuado es limitar las extensiones de ficheros que se permiten.
php_value engine off
AddType text/plain .htm .html .shtml
Contenido dependiente del navegador
Para redirigir el contenido en función del navegador se puede utilizar el valor de User-Agent que aparece en la cabecera HTTP de las peticiones, y con el que normalmente se identifica el navegador.
Por ejemplo, las siguientes líneas colocadas en un fichero .htaccess harían que cuando un agente solicitara la página index.html se le sirviese la página index.opera.html si se identifica como Opera/*, la página index.mozilla.html si se identifica como Mozilla/*, y la página index.html en cualquier otro caso:
RewriteCond %{HTTP_USER_AGENT} ^Opera/*
RewriteRule ^index\.html$ index.opera.html [L]
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/*
RewriteRule ^index\.html$ index.mozilla.html [L]
RewriteRule ^index\.html$ index.html [L]
Los asteriscos en las expresiones regulares de las directivas casan con cualquier cadena de texto. En este caso en concreto se usan para redirigir el contenido dependiendo del nombre del agente sin tener en cuenta la versión, que suele indicarse a continuación de la barra, como Mozilla/3.0, Mozilla/4.0, Mozilla/5.0, etc.
Especificar el lenguaje por defecto del server
La siguiente regla agrega una cabecera del idioma que deseemos sin tener que usar una meta etiqueta:
# lenguaje por defecto del server
DefaultLanguage en-US
Declarar tipos MIME específicos
En ocasiones tendremos que indicar al servidor que tipo de programa o aplicación está ligada a los ficheros con una extensión en concreto, eso se hace definiendo los MIME types. Puedes consultar un listado de los diferentes MIME types en este enlace:
# agregar mime types
AddType application/x-shockwave-flash .swf
AddType video/x-flv .flv
AddType image/x-icon .ico
Forzar dominio con www
Si nos interesa que todos los usuarios vean el nombre del dominio en el navegador con www podremos usar esta regla
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
Forzar dominio sin www
Si nos interesa que todos los usuarios vean el nombre del dominio en el navegador sin www podremos usar esta otra regla
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
Forzar https en servidores con nginx
Desde nuestro panel de control puedes forzar la navegación https siguiendo esta guía, no obstante, con esta regla también puedes hacerlo(asegúrate de no tener ambas opciones activas al mismo tiempo)
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [R,L]
Ten en cuenta que posibilidades que ofrece el fichero .htaccess son muy amplias y aquí solo se describen las operaciones más básicas con .htaccess. Si te surgen dudas sobre alguna de ellas, no dudes en contactar con nuestro equipo de soporte.