Archivo de la etiqueta: htaccess

Redirigir url por idioma en htaccess

Si tienes un sitio web en Apache y necesitas redirigir a una dirección url distinta por cada idioma (inglés, español, portugués…) puede ser muy útil hacerlo mediante htaccess con la cabecera HTTP:Accept-Language que transmite el navegador del cliente. De este modo «confiaremos» en la configuración de lenguaje que cada usuario tiene en su navegador.

Así que nos ponemos manos a la obra:

Crear estructura de directorios

Deberemos crear un directorio por cada uno de los idiomas.

Por ejemplo si nuestro dominio es midominio.com crearemos en la raíz tantas subcarpetas como idiomas queramos manejar:

midominio.com/pt

midominio.com/es

midominio.com/en

Editar el archivo .htaccess

Añadiremos estas líneas:


RewriteEngine On
RewriteBase /

# Lenguaje portugués: 'pt'
RewriteCond %{HTTP:Accept-Language} ^pt [NC]
RewriteRule ^/?$ pt/ [R,NC,L]

# Lenguaje portugués: 'es'
RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule ^/?$ es/ [R,NC,L]

#Regla general para los demás casos
RewriteRule ^/?$ en/ [R,NC,L]

En el código podemos comprobar que se establecen diversas reglas de redireccionamiento para cada condición de la cabecera enviada por el navegador.

Como forzar www en url con htaccess

Si quieres forzar  que cualquier petición a apache cambie de «midominio.com» a «www.midominio.com» lo hacemos mediante el archivo htaccess de la siguiente manera:

# Forzamos el "www."
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

Donde domain es el nombre de tu dominio.

Forzar www en url con htaccess te permite mediante las directivas de servidor Apache y archivos htaccess reconducir peticiones http a direcciones más concretas.

Compresión gzip o deflate editando .htaccess con apache

Para habilitar la compresión gzip o deflate antes de nada es fundamental saber si el
servidor apache donde está alojado tu sitio web permite la compresión.
Si es así entonces podremos modificar el archivo .htaccess en la raíz de tu aplicación e insertar esto:


# Compresión GZIP con mod_gzip

<IfModule mod_gzip.c>
   mod_gzip_on Yes
   mod_gzip_dechunk Yes
   mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
   mod_gzip_item_include handler ^cgi-script$
   mod_gzip_item_include mime ^text/.*
   mod_gzip_item_include mime ^application/x-javascript.*
   mod_gzip_item_exclude mime ^image/.*
   mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
 </ifModule>

 


# Compresión GZIP con mod_deflate
 <IfModule mod_deflate.c>

     AddOutputFilterByType DEFLATE text/css text/javascript
application/x-javascript application/javascript    text/x-component
text/html text/richtext image/svg+xml text/plain text/xsd text/xsl
text/xml image/x-icon     application/json
 </IfModule>

En esta configuración podremos incluir o excluir las extensiones de archivo que creamos convenientes.

Optimizar caché de navegador con htaccess en apache

Si tu servidor de alojamiento web es apache puedes mejorar la velocidad de tu sitio estableciendo el tiempo de la caché insertando dentro del archivo htaccess de la raíz de tu aplicación web:

 # Optimización caché navegador
 <FilesMatch "\.(ico|pdf|flv|jpg|JPG|jpeg|png|gif|js|css|swf)$">
 Header set Expires "Wed, 15 Apr 2020 20:00:00 GMT"
 Header set Cache-Control "public"
 </FilesMatch>

En estas líneas lo que estamos estableciendo es habilitar la caché para los ficheros que contienen las extensiones indicadas «\.(ico|pdf|flv|jpg|JPG|jpeg|png|gif|js|css|swf)$». En el ejemplo se
indica también el tiempo en el que expirará la caché para los archivos indicados: el miércoles 15 de abril del 2020 a las 20:00 horas.

Optimizar caché de navegador permite mejorar el rendimiento para cualquier sitio web que se encuentre en tu servidor apache.