En la categoría de: Art. para Webmasters y Joomla
Palabras Clave: joomla 3.x, joomla 3.0.x, joomla, 3.x, actualizar, extensiones, joomla 3.2
Publicado: 27-01-2014 (17:00)
A estas alturas del proyecto 3 de Joomla!, la respuesta DEPENDE de su sitio web y del caso concreto.
Si desea una breve explicación siga leyendo.
La rama 3.2.x de Joomla! (y en general la rama 3.x) es una rama que está en "desarrollo" y que sirve de base para la futura versión de larga duración -LTS, Long Time Support- del proyecto Joomla!, que previsiblemente será la versión 3.5.
Algunas de las extensiones de Joomla! (componentes, módulos y plugins) no están adaptados a la nueva versión de Joomla! -aunque cada vez existen menos que no estén adaptadas-, y es por ello, que el cambio a la nueva versión 3.2.x desde un proyecto en producción con Joomla! 2.5.x instalado no es recomandable por el momento.
Sólo en el caso de aquellas webs cuyas extensiones necesarias para su funcionamiento sean ya totalmente compatibles con Joomla! 3.2.x, o aquellas que necesitan la funcionalidad extra del proyecto 3 de Joomla!, podrían dar el salto a Joomla! 3. Para comprobar si las extensiones son compatibles con la nueva versión de Joomla! tendrá que revisar cada extensión para ver si es o no compatible. Esto incluye su plantilla, ya que no todas están preparadas para Joomla! 3.x.
Las extensiones más frecuentes (K2, Kunena, JCK, ChronoForms, Allvideos, JCE, etc) podrá consultar si tienen una versión para Joomla! 3.x en el Control de Versiones de Joomla! de NetandSoftware.
Las funcionalidades de Joomla! 3.2.1 son muchas, no sólo supone un cambio de versión. Puede ver algunos de los detalles en este artículo.
En la categoría de: Artículos Generales
Palabras Clave: seguridad, mitos, informática
Publicado: 02-01-2014 (12:00)
Ya ven, una de las falsedades más difundidas hoy día por Internet. Es cierto que es una práctica fundamental para la seguridad del ordenador (sobre todo en Windows), pero dista mucho de que una computadora esté completamente a salvo.
Los virus que todavían no han sido detectados por las compañías de antivirus pueden causar daños esté o no actualizado el antivirus. Pero además, el spyware, determinado malware, el phishing, e infinidad de técnicas más no pasan por los filtros de los antivirus.
No pueden equivocarse más. Al igual que lo explicado en el punto anterior, pasará lo mismo se tenga uno o veinte antivirus.
Pero además, algunos antivirus pueden interferir en funcionalidades del otro, por lo que no supone una mejora de la seguridad. Por supuesto, supone un consumo de recursos innecesarios; y nótese que el consumo excesivo de recursos es una de las prácticas de algunos virus, que se intentan solucionar con los antivirus. Así que no hagamos lo que intentamos evitar.
Al igual que la instalación y actualización de un antivirus, con los firewall pasa algo parecido: son una magnífica práctica para la seguridad informática, pero no son perfectos.
El firewall se encarga de controlar lo que entra y sale del ordenador en cualquier red -Internet incluido-. Pero la mayoría de los firewall son software -programa al fin y al cabo-, y puede ser desactivado por un virus, e incluso abrir un puerto "legal" que sirva como backdoor para la penetración en el sistema.
Esta es otra práctica fundamental en la seguridad informática, pero estoy seguro que muchos no caen en la siguiente conclusión:
Efectivamente, no sólo es un ejemplo real, si no que virus no controlados por el antivirus han podido ser guardados en la copia de seguridad sin problemas. Esto significa que el backup no está a salvo ni le libera de software malicioso.
De igual manera pasa con los puntos de restauración de Windows, no garantiza que con la restauración consigamos eliminar el problema.
Independientemente de que no tenga apego a los datos que guarda en su ordenador, la reinstalación de Windows puede no solucionar el problema. Por ejemplo, esto sucede cuando un virus se queda instalado en el sector de arranque del disco. En este caso la reinstalación de Windows no servirá de nada.
Si bien instalar software legítimo elimina de un plumazo infinidad de problemas con virus y troyanos, no es una receta mágica -ni mucho menos-. Los troyanos pueden instalarse por multitud de caminos, no sólo en software ilegal, por lo que no puede haber afirmación más falsa que la anterior.
Lo peligroso es pensar esto. Ya no se trata de la información que encuentren en un ordenador (que evidentemente puede o no ser interesante para el atacante), si no que su ordenador, como tal, ya es importante para ser atacado. ¿Por qué? Porque con el control de un ordenador, se puede crear un zombie (por ejemplo) y con él hacer tareas fraudulentas como si fueran legales. Pero es que además, el control de un ordenador es valioso en cuanto se pueden realizar prácticas como spam, envío de más virus, emails válidos para continuar la propagación, secuestro de contactos, cookies, acceso "legal" a sitios de Internet, etc.
¿Cree todavía que su ordenador no es interesante para un virus o para un ataque hacker?
Sin duda es otro punto a favor de la seguridad informática, pero la seguridad no puede quedarse ahí. Mantener actualizado Windows o Linux elimina las vulnerabilidades detectadas y corregidas en su sistema operativo, pero no es infalible, ni todos los ataques vienen de esa forma -como he explicado anteriormente- por lo que no es una cienca 100% segura.
Si bien han sido programas muy atacados -y muy vulnerables- no sólo esto evita infecciones por virus. No cabe duda que no usar estos dos programas de Windows, aumenta la seguridad, pero nada evitará que los virus incrustados en ficheros adjuntos en emails conflictivos los abras de la misma forma con otros programas similares o a través de una interfaz web; o que los virus existentes al bajar archivos desde una web no se instalen de la misma forma con otro software.
No se confíe por dejar de usar estos dos programas inseguros.
Esa es una vía de contagio conocida, pero sólo con estar conectados a Internet un virus llegado por email puede ejecutarse si no se toman las medidas oportunas -mantener firewall actualizado, antivirus actualizado y el sistema operativo al día-.
Utilizar Linux no quita de estar a salvo. Si bien los virus existentes para Linux son de poca importancia -y dada la configuración de seguridad de estos sistemas no hacen fácil la propagación y el daño-, otro tipo de malware puede hacer vulnerable tu sistema operativo Linux. Por supuesto, esto da para escribir un libro -uso de Wine, compartir ficheros con Windows, servir de infección sin saberlo, troyanos, y prácticas que no tienen que ver con la instalación de malware: tipo phishing, etc.
Aún así, el uso de Linux es una práctica importante para mantener la seguridad informática.
Instalar Linux es una práctica de seguridad magnífica pero, evidentemente, debe complementarse con coherencias de seguridad: mantener actualizado el sistema, instalar un firewall, instalar un antivirus para Linux si se usan archivos de Windows, procurar no usar repositorios desconocidos, etc., por lo que afirmar lo anterior es del todo equivocado.
En la categoría de: Art. para Webmasters y Joomla
Palabras Clave: .htaccess, simbología, ejemplos, expresiones regulares, apache, fichero, re-escritura, redirecciones, compresión, caché
Publicado: 11-12-2013 (10:59)
Hay muchísimos artículos en la red sobre el fichero .htaccess, así que es una buena forma de agrupar y reunir lo que realmente es interesante sobre este tema, mediante ejemplos claros que sirvan como ejemplo.
Primero, tenemos que decir que el fichero .htaccess es una verdadera 'navaja suiza' para el control del acceso a tu sitio web. Con ella se puede redireccionar a una persona, denegar el acceso, comprimir los ficheros, establecer una caché para los archivos, etc.
.htaccess significa acceso de hipertexto -hipertext access- y es un archivo de configuración de Apache. Apache es el software encargado de servir páginas web para plataformas Unix, Microsoft Windows, Mac, etc.
Advertencia: un error en el .htaccess puede hacer que no se vea la web hasta que se arregle dicho error.
Es evidente, pero importante, saber que en todos los ejemplos habrá que sustituir los nombres genéricos y las IP por las correctas en tu servidor. En muchos casos los dominios son del tipo dominio.com, ejemplo1.com, ejemplo2.com y similares, y las IP suelen ser 100.100.100.100, 100.101.102.103, y parecidas.
Crear un fichero .htaccess dentro de la carpeta con las instrucciones:
#denegar todo acceso
deny from all
#denegar todo acceso excepto una IP
deny from all
allow from 100.100.100.100
#denegar todo acceso excepto a un rango de IP
deny from all
allow from 100.100.100.100/24
#bloquear un fichero concreto
<Files archivo_a_bloquear.html>
order allow,deny
deny from all
#Redireccionar a todos a otrositio.com excepto una IP concreta
ErrorDocument 403 http://www.otrositio.com
order deny,allow
deny from all
allow from 100.101.102.103
Esto quiere decir que elimina 256 direcciones en el primer caso, 65536 en el segundo caso, y más de 16 millones de direcciones IP en el tercer caso
# Primer caso: deniega el acceso a 256 IPs, desde la 100.100.100.0 hasta la 100.100.100.255
order allow,deny
deny from 100.100.100.
# Segundo caso: deniega 65536 IP
order allow,deny
deny from 100.100.
# Tercer caso: deniega todas las IP que empiezan por 100, que son más de 16 millones
order allow,deny
deny from 100.
# permitir acceso a rango 100.100.100.0 hasta 100.100.100.255
order deny,allow
allow from 100.100.100.
# bloquear acceso a un dominio
order allow,deny
allow from all
deny from .*dominio\.com.*
# bloquear acceso visitas desde ejemplo1.com y ejemplo2.com
RewriteCond %{HTTP_REFERER} ejemplo1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ejemplo2\.com [NC,OR]
RewriteRule .* - [F]
# bloquear acceso una hora
RewriteCond %{TIME_HOUR} ^12$
RewriteRule ^.*$ - [F,L]
# bloquear acceso en varias horas
RewriteCond %{TIME_HOUR} ^(12|13|14|15)$
RewriteRule ^.*$ - [F,L]
# bloqueo de Proxies
RewriteCond %{HTTP:VIA} !^$ [OR]
RewriteCond %{HTTP:FORWARDED} !^$ [OR]
RewriteCond %{HTTP:USERAGENT_VIA} !^$ [OR]
RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR]
RewriteCond %{HTTP:PROXY_CONNECTION} !^$ [OR]
RewriteCond %{HTTP:XPROXY_CONNECTION} !^$ [OR]
RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$
RewriteRule ^(.*)$ - [F]
# prevenir acceso .htaccess
<files .htaccess>
order allow,deny
deny from all
</files>
#prevenir acceso a un fichero concreto
<files nombre.jpg>
order allow,deny
deny from all
</files>
# prevenir acceso a tipos de ficheros concretos
<FilesMatch "\.(htaccess|htpasswd|ini|phps|log)$">
order allow,deny
deny from all
</FilesMatch>
# evitar muestra de fichero MP4, WMV y AVI
IndexIgnore *.wmv *.mp4 *.avi
# evitar listado de directorios
IndexIgnore *
El hotlinking es cuando descargan ficheros de tu servidor desde otra web para mostrarlos en ésta, 'robando' ancho de banda y servicios del tuyo.
# Evita el hotlinking a ficheros GIF y JPG del servidor
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?midominio\.com/.*$ [NC]
RewriteRule .*\.(gif|jpg)$ http://www.midominio.com/hotlinking.jpg [R,NC,L]
Nota: Es más eficaz, si el archivo que mostramos a aquellos que realizan el hotlinking lo colgamos en un servidor gratuito de imágenes tipo ImageShack.us (o similares) y lo referenciamos allí.
Para evitar el hotlinking a ficheros MP3 y ficheros de vídeo AVI, WMV y MPG:
# Evita el hotlinking a ficheros MP3, AVI, WMV y MPG de cualquier subdominio y dominio del servidor
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([-a-z0-9]+\.)?midominio\.com [NC]
RewriteRule .*\.(mp3|avi|wmv|mpg|mpeg)$ http://www.midominio.com/images/nohotlink.gif [R,NC,L]
Nota: si se envían ficheros por RSS -sindicación del sitio- debe tenerse en cuenta, ya que las instrucciones anteriores bloquean todo el contenido de vídeo y los RSS pueden verse mal.
Nota: Es más eficaz, si el archivo que mostramos a aquellos que realizan el hotlinking lo colgamos en un servidor gratuito de imágenes tipo ImageShack.us o similar, y lo referenciamos allí.
# bloqueo del bot BotMalo
SetEnvIfNoCase User-Agent "BotMalo/" spambot
deny from env=spambot
# bloqueo de 3 bots conocidos (hay muchísimos más)
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule .* - [F]
# bloqueo del bot al acceder a un fichero PHP concreto
SetEnvIfNoCase Request_URI "/firefoxz.php$" spambot
deny from env=spambot
# bloqueo cuando se viene referenciado de un sitio web concreto
SetEnvIfNoCase Referer "^http://www.dominiospammers.com/" spambot
deny from env=spambot
Nota: Las 3 anteriores sentencias pueden combinarse escribiendo las 3 líneas SetEnvIfNoCase, y luego solo un deny, de la siguiente forma:
SetEnvIfNoCase User-Agent "BotMalo/" spambot
SetEnvIfNoCase Request_URI "/firefoxz.php$" spambot
SetEnvIfNoCase Referer "^http://www.spammers.com/" spambot
deny from env=spambot
# bloqueo cuando se viene referenciado de un sitio web concreto ejemplo1.com
RewriteCond %{HTTP_REFERER} ^ejemplo1\.com$ [NC]
RewriteRule .* - [F]
# bloqueo cuando se viene referenciado desde ejemplo1.com o ejemplo2.com
RewriteCond %{HTTP_REFERER} ^ejemplo1\.com$ [NC,OR]
RewriteCond %{HTTP_REFERER} ^ejemplo2\.com$ [NC]
RewriteRule .* - [F]
# evitar acceso a carpeta sin index
Options All -Indexes
Nota: lo contrario, es decir, permitir el acceso a carpetas sin index es:
# evitar acceso a carpeta sin index
Options All +Indexes
Es importante no repetir URLs -mostrando el mismo contenido con y sin www-, ya que penaliza el posicionamiento.
# quitar las www
RewriteCond %{http_host} ^www\.netandsoftware\.com [NC]
RewriteRule ^(.*)$ http://netandsoftware.com/$1 [R=301,L]
# mostrar siempre las www
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\.netandsoftware\.com$
RewriteRule (.*) http://www.netandsoftware.com/$1 [R=301,L]
#orden de los ficheros de carga por defecto
DirectoryIndex inicio.html index.htm index.html index.php
Nota: El orden es muy importante porque da la preferencia de los ficheros de carga
Esto se hace para que sea más dificil detectar el tipo de ficheros que se usa
# camuflar archivos PHP como NAS
AddType application/x-httpd-php .nas
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]
Nota: Los asteriscos indican el uso de cualquier versión de ese navegador, por ejemplo:dicarse a continuación de la barra, como "Mozilla/3.0", "Mozilla/4.0", "Mozilla/5.0", etc.
# redireccionar permanentemente
RewriteRule ^(.*)$ http://www.minuevodominio.com/$1 [R=301,L]
# redireccionar permanentemente
redirect 301 / http://www.dominio.com/
# redireccionar provisionalmente
RewriteRule ^(.*)$ http://www.minuevodominio.com/$1 [R=302,L]
# redireccionar un antiguo fichero a otra nueva dirección
Redirect /antiguo.html http://dominio.com/nuevo.html
Puede servir para avisar a una persona con una IP concreta de que ha sido baneada.
# redireccionar una IP a una página concreta de nuestra web
RewriteCond %{REMOTE_ADDR} 100.101.102.103
RewriteRule .* pagina-concreta.html [R]
# traslada todas las URL antiguas a la nueva carpeta en el mismo dominio
RewriteCond %{HTTP_HOST} ^midominio\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.midominio\.com$
RewriteCond %{REQUEST_URI} !^/webencarpeta/
RewriteRule (.*) /webencarpeta/$1 [L]
En el siguiente ejemplo, de http://www.midominio.com/quitar/prueba.html a http://www.midominio.com/prueba.html
# quitar una cadena de una URL
RewriteRule ^quitar/(.+)$ http://www.midominio.com/$1 [R=301,L]
Cambia una URL como http://www.midominio.com/articulos-blog?catid=27 a http://www.midominio.com/articulos-blog de forma permanente.
# Uso de ?
RewriteCond %{REQUEST_URI} ^/articulos-blog$ [NC]
RewriteCond %{QUERY_STRING} ^catid=(.*)$ [NC]
RewriteRule ^(.*)$ /articulos-blog? [R=301,L]
# Uso del %
RewriteCond %{REQUEST_URI} ^/noticias$ [NC]
RewriteCond %{QUERY_STRING} ^id=(.*)$ [NC]
RewriteRule ^(.*)$ /noticias/%1? [R=302,L]
# mejorando el posicionamiento SEO sustituyendo caracteres sin sentido por otros que determinan el contenido
RewriteRule ^(.*)/ps/(.*)$ $1/posicionamiento-seo/$2 [L,R=301]
Cambia la URL de este tipo http://www.midominio.com/pais/Espana.php a http://www.midominio.com/codigo/pais.php?nombre=Espana
# detectar palabras en mayúsculas o minúsculas o combinacion de ambas
RewriteRule ^pais/([a-zA-Z_-]+).php$ codigo/pais.php?nombre=$1 [L]
Cambia una URL como http://www.midominio.com/fecha/2013/12.html a http://www.midominio.com/fecha.php?mes=12&anio=2013 de forma permanente
# Doble parámetro
RewriteRule ^fecha/(.+)/(.+)\.html$ fecha.php?mes=$2&anio=$1 [R=301,L]
# comprimir focheros texto, html, javascript, css, xml
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
También en una sóla línea:
AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript
#Cache del navegador, imagenes cacheadas a una semana: 604800 segundos
<FilesMatch "\.(ico|jpg|jpeg|png|gif)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
#Cache del navegador, imágenes cacheadas a un mes: 2592000 segundos
<FilesMatch "\.(jpg|jpeg)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
#caché que expira las imágenes JPG en 6 meses, los CSS en 2 meses, y los JavaScripts en 2 semanas
ExpiresActive on
ExpiresByType image/jpg "access plus 6 months"
ExpiresByType text/css "access plus 2 months"
ExpiresByType text/javascript "access plus 2 weeks"
ExpiresActive On
ExpiresDefault A0
# caché expira en un año (A9030400) para los ficheros FLV, ICO, AVI, MOV, PPT, DOC, MP3, WMV y WAV
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A9030400
</FilesMatch>
# permiso automático del fichero que protege el directorio .htpasswd
chmod .htpasswd files 640
# permiso automático del fichero .htaccess
chmod .htaccess files 644
# permisos automáticos de archivos PHP
chmod php files 600
Protege de ciertos ataques DOS, limitando el tamaño de archivos que se suben al servidor.
# limitar la subida a 10 MB
LimitRequestBody 10000000
Generalmente sólo se permiten abrir
# permitir descarga de ficheros multimedia AVI, MPG, WMV y MP3
AddType application/octet-stream .avi
AddType application/octet-stream .mpg
AddType application/octet-stream .wmv
AddType application/octet-stream .mp3
ErrorDocument 404 /errores/404.html
Nota: Para otros tipos de errores es similar, se coloca el número de error y la dirección donde queremos redireccionar al visitante.
CheckSpelling On
# e-mail del administrador del servidor
SetEnv SERVER_ADMIN This email address is being protected from spambots. You need JavaScript enabled to view it.
# lenguaje por defecto del servidor
DefaultLanguage en-US
# fuerza el uso de SSL en la web
SSLOptions + StrictRequire
SSLRequireSSL
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} carpeta
RewriteRule ^(.*)$ https://www.midominio.com/carpeta/$1 [R,L]
# evitar que los errores se muestren al usuario
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
# registrar errores en log
php_flag log_errors on
php_value error_log /logs/php_error.log
# limitar el número de visitas a 400
MaxClients 400
# bloquear CGIs
Options -ExecCGI
AddHandler cgi-script .php .pl .py .jsp .asp .sh .cgi
# agregar tipos mime
AddType application/x-shockwave-flash .swf
AddType video/x-flv .flv
AddType image/x-icon .ico
Pasando el juego de caracteres se evita el mostrar un error 500 por este motivo
AddDefaultCharset utf-8
FileETag none
De forma breve, los códigos y símbolos en el archivo .htaccess son:
# Puesto al inicio de una línea, ignora esa línea.
[F] Forbidden: prohíbe un acceso y fuerza un acceso denegado. 403 Forbidden.
[L] Last rule: indica que es la última regla que debe aplicarse.
[N] Next: indica continuación hasta que las directivas sean logradas.
[G] Gone: indica al servidor que ya no existe, es decir, entrega "Gone".
[P] Proxy: instruye al servidor para manejar los pedidos por mod_proxy.
[C] Chain: encadena la regla actual con la regla anterior.
[R] Redirect: indica redirección. Puede haber de varios tipos 301 (permanente), 302 (provisional).
[NC] No Case: no sensible a mayúsculas, es decir, indica que no debe distinguirse entre mayúsculas y minúsculas.
[PT] Pass Through: pasa el URL a Apache para seguir procesando.
[OR] Or: indica que la expresión debe interpretase como una alternativa junto a la siguiente: ó lógico. Si se omite, se sobreentiende que es una y lógica, por defecto.
[NE] No Escape: analiza las salidas de caracteres sin escapar.
[NS] No Subrequest: para saltar directivas de sub-pedidos internos.
[QSA] Append Query String: agrega un query string al final de la expresión (URL).
[S=x] Skip: salta las siguientes "x" reglas del fichero .htaccess.
[E=variable:value] Environmental Variable: para añadir un valor a una variable.
[T=MIME-type] Mime Type: declara mime-type al recurso.
[] dentro de los paréntesis se encierran carácteres que definen los resultados.
[]+ se utiliza para hacer combinaciones.
[^] excluye los carácteres que pongamos dentro del paréntesis. Ejemplo [^abc] excluye las letras a, b y c.
[a-z] letras desde la a hasta la z (en minúsculas).
[A-Z] letras desde la A hasta la Z (en mayúsculas).
[a-zA-Z] sólo letras (mayúsculas y minúsculas).
[a-z]{1,10} palabras en minúsculas entre 1 y 10 caracteres.
[0-9] sólo un número.
[0-9]{4} números de 4 cifras.
(.*) cualquier expresión, incluida la vacía.
a{n} especifica el número de caracteres.
a{n,} especifica el número "o más" de caracteres.
a{n,m} especifica un rango entre "n" y "m". Ejemplo s{3,6} será 3 "eses", 4 "eses", 5 "eses" o 6 "eses".
() es un agrupamiento de caracteres.
^ marca el inicio de un argumento.
$ marca el fin de un argumento.
? establece como opcional el caracter que le precede. Si se pone este símbolo al final del segundo argumento del RewriteRule, indicará que no se ponga nada más en la URL.
! es la negación. Ejemplo: "!string" resulta "no string".
. indica cualquier caracter arbitrario.
- instrucción “not to”.
+ indica uno o más caracteres del caracter que le precede. Por ejemplo: (.+) indica cualquier cadena de uno o más caracteres.
| es el ó lógico, condición de alternancia. Ejemplo (a|b) es el caracter a o el b.
\ escapa caracteres, es decir, toma el caracter que le sigue literalmente. Por ejemplo: “\.” indica literalmente un punto, ya que sin la barra invertida indicaría cualquier caracter.
/* indica cero o más "/".
.* indica cualquier caracter, incluido que no exista caracter.
^$ indica una cadena vacía.
^.*$ indica "todo", toda la cadena.
[^/.] define un caracter que no sea "/" ni ".".
[^/.]+ define, ningún número de caracter que tenga "/" o ".".
http:// es literalmente “http://”.
^dominio.* define una cadena que comience con "dominio" y le siga cualquier número de caracteres.
^dominio\.com$ define exactamente “dominio.com”.
-d prueba si la cadena es un directorio existente.
-f prueba si la cadena es un archivo existente.
-s prueba si el archivo en la cadena no tiene valor cero.
Y espero que con estos ejemplos, tengan resueltas muchas de las opciones posibles para configurar su propio .htaccess según sus necesidades.
En la categoría de: Artículos sobre Páginas Web
Palabras Clave: velocidad, carga, optimización, posicionamiento, seo, rapidez, clave, joomla
Publicado: 10-12-2013 (10:59)
Sin meternos en explicaciones tediosas y complicadas, describiremos lo que supone la velocidad de carga para una web y su posicionamiento, es decir, para la posición que le otorgan los buscadores en las páginas de resultados.
¿Es importante la velocidad de una web para un buen posicionamiento SEO?
Resumiendo este artículo, sí. Hace años el SEO era muy distinto a como ha cambiado en pocos años. Mientras que en 2006 lo más importante a nivel de posicionamiento era rellenar adecuadamente palabras clave y metadatos -sin apenas preocuparnos de nada más-, de pocos años hasta ahora un factor determinante es la velocidad de carga de la web.
El buscador Google lo dejó muy claro: decidió ofrecer a sus usuarios la mejor experiencia en motores de búsqueda, y para ello dejó patente que para el cálculo de la posición de una página web en sus resultados tendría muy en cuenta la velocidad de carga de esa página. Eran palabras casi literales de Google, que conformaban el objetivo de buscar y proporcionar a los usuarios de su buscador: buena experiencia al usuario y resultados más relevantes. Evidentemente, los sitios rápidos aumentan la satisfacción del usuario y mejoran la calidad general del sitio web, algo acorde con esta política de Google.
Esta determinación puede verse en el crecimiento medio del peso de las webs, triplicando la media en sólo 5 años, sin signos de desaceleración -según websiteoptimization-, por lo que los webmasters estaban tomando caminos rápidos en vez de optimizar adecuadamente las páginas web. El informe explica, a su vez, que para un mismo contenido, la misma web duplica en estos años el número de elementos internos que forman la web -injustificados, aunque se mejoren los contenidos de esa página-. Esto se debe a la mejora del aspecto gráfico y el diseño, pero también al aumento desproporcionado del peso debido a un descuido en gráficos, estilos y diseños, consecuencia de las conexiones de banda ancha con mayor capacidad.
Nunca puede ser igual una página web con un peso total de 6 MB -en la que hasta para los usuarios con mejores conexiones puede resultar tediosa de visitar-, con una página web de apenas 50 KB -rápida en cualquier caso-. Por parte de Google, no deja de ser un merecido premio al trabajo y esfuerzo de un trabajo bien hecho.
El aumento injustificado de elementos, gráficos mal comprimidos, etc. puede hacer crecer rápidamente la velocidad de carga. Y aunque ésta pase desapercibida por unas conexiones mejores, serán los usuarios los que decidan finalmente que su experiencia en esa web no es tan satisfactoria como en webs similares. Los usuarios finales están cada vez más familiarizados con Internet y son menos tolerantes a malas experiencias en cuanto a la rapidez de una web. Existen infinidad de estudios analíticos -no sólo de sondeo y encuestas- que demuestran que los usuarios desean páginas webs rápidas, independientemente de su contenido. Esto lo demuestran numéricamente datos específicos como el porcentaje de rebote de una web. Al usuario le da igual que la web tenga vídeo incrustado o sea sólo texto, en ambos casos, el contenido debe proporcionarse de forma rápida, y si no, abandonará la web antes de 30 segundos, -lo que es conocido como rebote-. Por supuesto, la percepción estética, la credibilidad de la web o la frustración de la visita son otros valores que influyen en la experiencia del usuario, pero la velocidad de carga se sitúa entre los más importantes.
Lo más importante es saber que no sólo influye un parámetro en la velocidad, si no una serie de problemas -en la mayoría de los casos, muchos-. Enumerados someramente pueden ser:
Si usa Joomla!, todas estas optimizaciones -o la mayoría de estas optimizaciones- se explican con detalle en el documento Pasos para optimizar y acelerar la carga de Joomla! En el caso de no usar Joomla!, este documento puede servir de referencia.
Pero si desea saber si la velocidad de carga de su web es adecuada, hágase las siguientes preguntas: ¿cuál es la experiencia del usuario en mi sitio web?, ¿ha medido alguna vez la velocidad de carga de su web con las herramientas disponibles para ello?, ¿es agradable visitar mi web?
Para resumir, una web optimizada obtiene y obtendrá mejores resultados que otra que no lo esté, por lo que:
Todo ello ayudará a conseguir un mejor puesto en los resultados de búsqueda.
This site uses technology web 2.0. Videoconference Online Courses, Experts in Joomla!, Search Engine Optimization and web analysis