Configuración htaccess para Joomla

Un archivo .htaccess (hypertext access), es un archivo especial del servidor HTTP Apache que 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.

Joomla cuenta con este archivo en la instalación, ya que tiene gran importancia en este CMS. La función principal de .htaccess, es comunicarse con el servidor y darle instrucciones sobre lo que necesitamos que realice cuando alguien visita una página de nuestro sitio web.

También sirve para restringir el acceso a algunas carpetas o subcarpetas por medio de contraseña y permite controlar el acceso a cierta dirección IP.

Cuando entramos al FTP de un sitio web hecho en Joomla, podremos ver el archivo en la raíz, el cual podemos editar usando un editor de texto.

htaccess en el FTP

A continuación explicaré las acciones más importantes que se pueden hacer con .htaccess: URL Amigables: Son rutas que se pueden leer fácilmente ya que están hechas de palabras que describen el contenido del sitio web (generalmente el título del contenido), siendo de gran importancia para los buscadores y también para que los usuarios las recuerden fácilmente.
## Mod_rewrite in use.
RewriteEngine On

htaccess ya trae habilitado el mod-rewrite, para que funcione en Joomla, el cual debemos reenombrar de htaccess.txt a .htaccess, una vez realizado este paso, vamos al administrador y luego a configuración global para seleccionar como "Si" lo siguiente:

Configuración URL Amigable en Joomla

Realizando estas modificaciones, las URL del sitio web deben ser amigables. Recuerde hacer un backup antes de hacer estos cambios.

URL Canónica: Si tiene una web, pueden comprobar que hay diferentes formas de entrar al mismos sitio web, por ejemplo:

https://scienceandmarketing.com
https://www.scienceandmarketing.com

Para configurar la preferencia del dominio, debemos tener claro como queremos que nos vea Google, ya sea con o sin www. Los ejemplos son los siguientes:

  ## Con www
  RewriteEngine On
  RewriteBase /
  RewriteCond %{HTTP_HOST} !^www.scienceandmarketing.com$ [NC]
  RewriteRule ^(.*)$ https://www.scienceandmarketing.com/$1 [L,R=301]
  # Sin www
  RewriteEngine On
  RewriteBase /
  RewriteCond %{HTTP_HOST} !^scienceandmarketing.com$ [NC]
  RewriteRule ^(.*)$  https://scienceandmarketing.com/$1 [R=301,L]

Barra final de la URL: Otro aspecto de vital importancia para el SEO, es decidir si removemos o dejamos la barra al final de la URL:

  https://www.scienceandmarketing.com/
  https://www.scienceandmarketing.com

Hay que tener mucho cuidado al cambiar esto, en el core de Joomla no hay problemas, pero si en algunas extensiones que necesitan la barra al final. Así que antes de realizar este cambio, recomiendo revisar las extensiones.

  RewriteEngine On
  RewriteBase /
  DirectorySlash Off
  #quitar barra al final
  RewriteRule ^(.*)\/(\?.*)?$ $1$2 [R=301,L]

Caché para las imágenes, archivos js y CSS: Una de los mayores problemas que tienen muchos sitios web, es la carga. Es bien sabido que los buscadores como Google o Bing, premian la carga rápida y una forma forma de lograrlo es por medio de htaccess, definiendo la caché de las imágenes y archivos en el sitio:

########## Begin - ETag Optimization
## This rule will create an ETag for files based only on the modification
## timestamp and their size. This works wonders if you are using rsync'ed
## servers, where the inode number of identical files differs.
## Note: It may cause problems on your server and you may need to remove it
FileETag MTime Size
########## End - ETag Optimization
########## Begin - Automatic compression of resources
# Compress text, html, javascript, css, xml, kudos to Komra.de
# May kill access to your site for old versions of Internet Explorer
# The server needs to be compiled with mod_deflate otherwise it will send HTTP 500 Error.
# mod_deflate is not available on Apache 1.x series. Can only be used with Apache 2.x server.
# AddOutputFilterByType is now deprecated by Apache. Use mod_filter in the future.
AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript
########## Begin - Optimal default expiration time
## Note: this might cause problems and you might have to comment it out by
## placing a hash in front of this section's lines

	# Enable expiration control
	ExpiresActive On
 
	# Default expiration: 1 hour after request
	ExpiresDefault "now plus 1 hour"
 
	# CSS and JS expiration: 1 week after request
	ExpiresByType text/css "now plus 1 week"
	ExpiresByType application/javascript "now plus 1 week"
	ExpiresByType application/x-javascript "now plus 1 week"
 
	# Image files expiration: 1 month after request
	ExpiresByType image/bmp "now plus 1 month"
	ExpiresByType image/gif "now plus 1 month"
	ExpiresByType image/jpeg "now plus 1 month"
	ExpiresByType image/jp2 "now plus 1 month"
	ExpiresByType image/pipeg "now plus 1 month"
	ExpiresByType image/png "now plus 1 month"
	ExpiresByType image/svg+xml "now plus 1 month"
	ExpiresByType image/tiff "now plus 1 month"
	ExpiresByType image/vnd.microsoft.icon "now plus 1 month"
	ExpiresByType image/x-icon "now plus 1 month"
	ExpiresByType image/ico "now plus 1 month"
	ExpiresByType image/icon "now plus 1 month"
	ExpiresByType text/ico "now plus 1 month"
	ExpiresByType application/ico "now plus 1 month"
	ExpiresByType image/vnd.wap.wbmp "now plus 1 month"
	ExpiresByType application/vnd.wap.wbxml "now plus 1 month"
	ExpiresByType application/smil "now plus 1 month"
 
	# Audio files expiration: 1 month after request
	ExpiresByType audio/basic "now plus 1 month"
	ExpiresByType audio/mid "now plus 1 month"
	ExpiresByType audio/midi "now plus 1 month"
	ExpiresByType audio/mpeg "now plus 1 month"
	ExpiresByType audio/x-aiff "now plus 1 month"
	ExpiresByType audio/x-mpegurl "now plus 1 month"
	ExpiresByType audio/x-pn-realaudio "now plus 1 month"
	ExpiresByType audio/x-wav "now plus 1 month"
 
	# Movie files expiration: 1 month after request
	ExpiresByType application/x-shockwave-flash "now plus 1 month"
	ExpiresByType x-world/x-vrml "now plus 1 month"
	ExpiresByType video/x-msvideo "now plus 1 month"
	ExpiresByType video/mpeg "now plus 1 month"
	ExpiresByType video/mp4 "now plus 1 month"
	ExpiresByType video/quicktime "now plus 1 month"
	ExpiresByType video/x-la-asf "now plus 1 month"
	ExpiresByType video/x-ms-asf "now plus 1 month"

########## End - Optimal expiration time

Redirecciones: Joomla por defecto tiene un componente de redirección, pero no permite establecer reglas que apliquen para un conjunto de URL's. Así que htaccess es la alternativa para realizar las redirecciones:

Redirección URL:
redirect 301 /categoria1/pagina-anterior.html https://www.scienceandmarketing.com/categoria1/pagina-nueva.html
Redirección Carpeta:
RewriteRule ^folder1.*$ https://www.scienceandmarketing.com/folder2/ [R=301,L]

Bloquear acceso a directorios: Podemos mostrar el mensaje 403 Forbidden para directorios de Joomla desde el front-end, como libraries, languages, logs, etc.

## Prohibe el acceso a ciertos directorios de Joomla!
RewriteRule ^(cache|includes|language|libraries|logs|tmp)/ - [F]

Inclusión remota de archivo (RFI): RFI es un ataque simple a nuestro sitio web, donde pueden insertar archivos desde la URL, un ataque frecuente en sitios web de Joomla que están desactualizados, podemos prevenirlo de la siguiente forma:

#Protección de de inyección de archivos
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
RewriteRule .* - [F]

Es de suma importancia mantener su sitio web de Joomla actualizando. Las últimas versiones de Joomla, muestran las actualizaciones recientes tanto del Core Joomla como de las extensiones.

Importante: La manipulación del archivo .htaccess es compleja y solo debe ser configurado por un experto, ya que cualquier modificación puede hacer que su sitio web tenga problemas.

Suscríbete a nuestra newsletter

Escribir un comentario


Código de seguridad
Refescar

Suscríbete a nuestra newsletter

Soporte 24/7

Si necesita soporte para tu sitio web, contacte con nosotros

Science and Marketing
New York, USA
Madrid, Spain
T: +34 910 012 801
M: +34 674 702 415
T: +1 (646) 583 2747
eMail
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.