Skip to main content

Tiempo de lectura 10 minutos

¿Qué podemos hacer con htaccess en nuestro sitio web?

La mayoría de las ofertas para hosting web son para el servidor web Apache, una solución mucho más económica que otras plataformas, Apache nos permite entre otras muchas cosas usar el archivo .htaccess, con el que podemos controlar muchas cosas de nuestro sitio web.

Podemos redirigir un dominio a otro, podemos redirigir un dominio sin www al dominio con www, si escribes en el navegador http://creotupagina.es siempre te redirigirá a https://www.creotupagina.es. Si escribes en el navegador: https://www.creotupagina.com, https://creotupagina.com, da igual lo que pongas que siempre redirigirá a la web donde te encuentras ahora.

Por si no lo sabías para Google estos dos dominios con y sin www son diferentes. Te dejamos esta guía de códigos .htaccess para que los puedas utilizar en tu página web.

1. ¿Qué es el archivo htaccess?

(Hypertext Access o Acceso a Hipertexto). Es un archivo de configuración de las políticas de acceso a los directorios y archivos de la web, para realizar configuraciones como redireccionar dominios, apuntar un dominio a otra carpeta, proteger directorios, comprimir archivos, etc.

Es archivo muy sencillo que se puede modificar con un editor de téxto básico, subirlo a la raíz de tu webpara que haga lo que queramos que haga.

Cualquier error en el archivo htaccess puede provocar errores en el funcionamiento de la web.

Podrás encontrar el archivo en la raiz de tu servidor, es un archivo oculto por lo que no lo podrás ver hasta que en opciones de configuración, pinches en ver archivos ocultos.

2. Redirigir la URL sin www a la dirección con www

RewriteEngine On
RewriteCond %{HTTP_HOST} ^creotupagina.es [NC]
RewriteRule ^(.*)$ https://www.creotupagina.es/$1 [L,R=301]

Este código redirigrá la url de tu dominio sin www a tu dominio con www.

3. Redirigir siempre al alias www cualquier dominio apuntado

Útil para redirigir uno o varios dominios con www usando comodines www.*.*:

RewriteCond %{REQUEST_URI} !^/robots.txt$ [NC]
RewriteCond %{HTTP_HOST} !^www.[a-z-]+.[a-z]{2,6} [NC]
RewriteCond %{HTTP_HOST} ([a-z-]+.[a-z]{2,6})$ [NC]
RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]

Si tenemos varios dominios, si no queremos hacer una redirección 301 de cada uno, podemos redirigir todos los .tldde los dominios utilizados, sin www a con www:

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

4. Redirigir url de una carpeta a otra carpeta del mismo dominio

Si hemos cometido el error de poner una carpeta de forma incorrecta, o que se cambió el nombre, podemos redireccionar las peticiones que vayan de la carpeta 1 a la carpeta 2:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^carpeta1/(.*)$ http://dominio.com/carpeta2/$1 [R=301,L]
4.1. Redirigir un dominio a otro dominio

Para que quienes vengan de enlaces de la antigua url lleguen a la nueva sin problema. Si no se hace podría afectar al posicionamiento y perderíamos tráfico.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^anteriordominio.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.anteriordominio.com$
RewriteRule (.*)$ http://www.nuevodominio.com/$1 [R=301,L]
</IfModule>

5. Impedir listar el directorio

Si tienes una carpeta con contenido privado, si dicha carpeta no tiene un index.html los visitantes podrían ver todos los archivos dentro sin problemas, con esto vamos a evitarlo.

Options -Indexes

6. Orden de ejecución de archivos

Interesante si quieres dar prioridad a un archivo frente a otro, por ejemplo si tienes tanto el index.html como un index.php dentro de public_html, el archivo index.html tiene prioridad, la mayoría de scripts ejecutan primero el .php, también podemos eliminar el html aunque si no es así, la mejor solución es utilizar el siguiente código para dar prioridad al index.php:

DirectoryIndex index.php index.html

7. Comprimir archivos CSS, JavaScript, XML y texto

(Hypertext Access o Acceso a Hipertexto). Es un archivo de configuración de las políticas de acceso a los directorios y archivos de la web, y para realizar configuraciones como redireccionar dominios, proteger, comprimir archivos, etc.

<ifmodule>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript
</ifmodule>

8. Almacenamiento en caché de imágenes

(Hypertext Access o Acceso a Hipertexto). Es un archivo de configuración de las políticas de acceso a los directorios y archivos de la web, y para realizar configuraciones como redireccionar dominios, proteger, comprimir archivos, etc.

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif A432000
ExpiresByType image/jpg A432000
ExpiresByType image/jpeg A432000
ExpiresByType image/png A432000
ExpiresByType image/ico A432000
ExpiresByType image/bmp A432000
ExpiresByType text/css A432000
ExpiresByType text/javascript A432000
ExpiresByType application/javascript A432000
ExpiresByType application/x-javascript A432000
</IfModule>

Guarda caché de los archivos durante cinco días o 432.000 segundos. Se puede cambiar este valor pero tiene que ser expresado en segundos.

9. Proteger el archivo .htaccess

Para evitar que el archivo htacces pueda ser leído desde un navegador web.

<Files .htaccess>
Order allow,deny
Deny from all
</Files>

10. Prevenir el hotlinking

El hotlinking es una mala práctia, pero a veces otros hostmasters pueden cargar nuestras imágenes, a través de nuestro servidor haciéndolas suyas, y si tienen muchas visitas afectará mucho al ancho de banda de nuestro servidor.

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+.)?creotupagina.es/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*.(jpg|gif|bmp|png)$ http://hotlink.creotupagina.es/no_se_permite_hotlinking.jpg [L]

11. Cambiar la carpeta de destino de un dominio a otra carpeta

Esto nos vale por ejemplo, si tenemos ya un sitio web dentro de public_html, y queremos actualizarlo, pero si no quieres que nadie lo vea y tampoco quieres que la web en producción se vea afectada, puedes trabajar con una web nueva dentro de una subcarpeta, al terminarla puedes optar por mover todos los archivos al directorio raiz o redirigir el dominio a la carpeta por medio del archivo htaccess.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^creotupagina.es$ [OR]
RewriteCond %{HTTP_HOST} ^www.creotupagina.es$
RewriteCond %{REQUEST_URI} !^/pagina2/
RewriteRule (.*) /pagina2/$1 [L]

12. Forzar el uso de SSL

Este código obliga a usar SSL, denegando las peticiones http.

SSLOptions + StrictRequire SSLRequireSSL

13. Redireccionar de HTTP a HTTPS

Es necesario tener un certificado SSL instalado en el hosting para poder trabajar con este protocolo más seguro.

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{HTTP_HOST} ^creotupagina.es$ [OR]
RewriteCond %{HTTP_HOST} ^www.creotupagina.es$
RewriteRule ^(.*)$ https://www.creotupagina.es/$1 [R=301,L,NE]

Si no queremos forzar el uso de SSL para una url determinada, por ejemplo https://www.creotupagina.es/direccion-sin-https

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{REQUEST_URI} !/direccion-sin-https$ [NC]
RewriteCond %{HTTP_HOST} ^creotupagina.es$ [OR]
RewriteCond %{HTTP_HOST} ^www.creotupagina.es$
RewriteRule ^(.*)$ https://www.creotupagina.es/$1 [R=301,L,NE]

14. Redireccionar de HTTPS a HTTP

También podemos hacerlo al revés, forzar el uso el tráfico encriptado SSL para sevir con http.

RewriteEngine On
RewriteCond %{ENV:HTTPS} on [NC]
RewriteCond %{HTTP_HOST} ^creotupagina.es$ [OR]
RewriteCond %{HTTP_HOST} ^www.creotupagina.es$
RewriteRule ^(.*)$ http://www.creotupagina.es/$1 [R=301,L,NE]

15. Forzar la carga de contenido mixto bajo HTTPS en lugar de HTTP

Aun teniendo un certificado SSL para trabajar bajo https, por alguna razón estamos cargando contenido con http como contenido mixto, añadiendo esta directiva en el archivo htacces forzamos los contenidos no seguros a https.

<ifModule mod_headers.c>
Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>

En este artículo apenas hemos visto un poco por encima todo el potencial que tiene el archivo htaccess, muchas veces pasa desapercibido como si fuera un archivo más, cuando en realidad su potencial es tan grande como el usuario quiera darle.

CONTACTA CON NOSOTROS

Por favor escribe tu nombre.
Tiene que ser un número de teléfono
E-mail no válido.
Invalid Input
Invalid Input
Entrada no válida

Déjanos tus datos y una breve descripción del proyecto web que necesitas, y te enviaremos información detallada, consejos sobre todas las posibilidades, además de varios presupuestos para que puedas elegir el que más se adapta a tu proyecto.

“En Pablo Garcia Cristobal tratamos la información que nos facilita con el fin de prestarles el servicio solicitado o enviare la información requerida. Los datos proporcionados se conservarán mientras no nos solicite el cese de la actividad. Los datos no se cederán a terceros salvo en los casos en que exista una obligación legal. Usted tiene derecho a obtener información sobre si en Pablo Garcia Cristobal estamos tratando sus datos personales, por lo que puede ejercer sus derechos de acceso, rectificación, supresión y portabilidad de datos y oposición y limitación a su tratamiento ante Pablo Garcia Cristobal, Av Madrid 61 2º A Laguna de Duero o en la dirección de correo electrónico Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo., adjuntando copia de su DNI o documento equivalente. Asimismo, y especialmente si considera que no ha obtenido satisfacción plena en el ejercicio de sus derechos, podrá presentar una reclamación ante la autoridad nacional de control dirigiéndose a estos efectos a la Agencia Española de Protección de Datos, C/ Jorge Juan, 6 – 28001 Madrid.

Asimismo, solicitamos su autorización para enviarle publicidad relacionada con nuestros productos y servicios por cualquier medio (postal, email o teléfono) e invitarle a eventos organizados por la empresa.”

Creo Tu Página empresa de diseño web en Valladolid