PW Blog

Web design, web development e seo

Archive for Novembre, 2007

Italian WebDesign graphic contest

Italian WebDesign, uno dei più autorevoli blog italiani di webdesign ha organizzato un contest per rifare la propria grafica.

Il contest, che scade il 20 Gennaio 2008, premia il vincitore con un link nel footer del sito.

Buon contest a tutti!

  • 0 Commenti
  • Archiviato in: Web Design
  • mod_rewrite sulla directory Freeglobes seguite questi semplici passaggi.

    Andate nel vostro pannello di amministrazione della directory, poi plugins ed infine URL rewrite, cliccate su enable.

    Quando ritornerete nella home della directory avrete tutti i link cambiati col finale che finisce .html, ci cliccate sopra e vi darà sicuramente un errore 404.

    Non spaventatevi, nulla di grave!

    Dovete semplicemente editare il file .htaccess, quindi:

    aprite il file .htaccess (che risulterà vuoto) presente nella cartella della directory che avete sul vostro PC e andate ad inserire il seguente codice:

    RewriteEngine on
    RewriteBase /directory

    RewriteRule ^(.*)-f-([0-9]*)-([0-9]*).html$ feed.php?feedid=$2&linkid=$3 [L]
    RewriteRule ^(.*)-s-([0-9]*).html$ single.php?id=$2 [L]
    RewriteRule ^(.*)-t-([0-9]*).html$ tag.php?name=$1&id=$2 [L]
    RewriteRule ^(.*)-c-([0-9]*).html$ index.php?name=$1&dir=$2 [L]
    RewriteRule ^(.*)-k-([0-9]*).html$ index.php?do=keywords&words=$1&id=$2 [L]
    RewriteRule ^(.*)-c-([0-9]*)-p-([0-9]*).html$ index.php?name=$1&dir=$2&start=$3 [L]
    RewriteRule ^top-rank([0-9]{1,2}).html$ index.php?do=top-rank&pr=$1 [L]
    RewriteRule ^(([a-z]|-)*).html$ index.php?do=$1 [L]

    Fatto ciò, salvate il file e uploadatelo nella root della directory.

    Un altro modo per editare l’.htaccess è questo: andate nel pannello di controllo del vostro sito su AV, gestione file, root dove avete messo i file della directory, il primo file che vi troverete è l’.htaccess, cliccate sull’immagine che rappresenta degli ingranaggi ed entrate nel file per editarlo.

    Qui troverete un file non vuoto e che presenterà questo codice:

    RewriteEngine on

    RewriteRule ^(.*)-f-([0-9]*)-([0-9]*).html$ feed.php?feedid=$2&linkid=$3 [L]
    RewriteRule ^(.*)-s-([0-9]*).html$ single.php?id=$2 [L]
    RewriteRule ^(.*)-t-([0-9]*).html$ tag.php?name=$1&id=$2 [L]
    RewriteRule ^(.*)-c-([0-9]*).html$ index.php?name=$1&dir=$2 [L]
    RewriteRule ^(.*)-k-([0-9]*).html$ index.php?do=keywords&words=$1&id=$2 [L]
    RewriteRule ^(.*)-c-([0-9]*)-p-([0-9]*).html$ index.php?name=$1&dir=$2&start=$3 [L]
    RewriteRule ^top-rank([0-9]{1,2}).html$ index.php?do=top-rank&pr=$1 [L]
    RewriteRule ^(([a-z]|-)*).html$ index.php?do=$1 [L]

    a questo codice dovrete aggiungere sotto RewriteEngine on il RewriteBase /directory: il risultato sarà uguale.

    Un’ultima cosa. Quando inserite il RewriteBase /directory, quest’ultima parola e cioè directory è il nome della root dove avete i file della stessa, quindi se il nome della root è diverso dovete cambiarlo con quello che utilizzate voi, altrimenti vi continuerà a dare errore 404.
    A questo punto la vostra directory è pronta per essere indicizzata al meglio dai motori di ricerca.

    Ciao!!!

    Difficoltà di posizionamento

    La foto che segue è stata scattata all’ultimo IAB Forum di Milano… e conferma una situazione palese: Google ha qualche difficoltà di posizionamento.

    Per vedere la foto, saltate alla seconda parte…

    Statemi bene…

    (ripreso da una segnalazione di WebNews.it)

  • 0 Commenti
  • Archiviato in: Punto web
  • Guida Google Maps API

    Ho tradotto (con l’aiuto dello staff, spero al meglio 07) il tutorial sulle API maps di Google presente su questo blog.

    Eccolo

    Prima di addentrarsi in questo complicato tutorial, si raccomanda di guardarde una Google Map già sviluppata.

    Dopo aver risposto su una discussione nel forum Godbit, l’utente ha creato questa breve guida sulle Google Maps API.

    Dopo aver letto questo tutorial sarai capace di:

    • Avere una propria mappa interattiva;
    • Impostare un livello di zoom standard;
    • Localizzare le tue coordinate geografiche;
    • Centrare la tua mappa in queste coordinate;
    • Porre un marcatore su queste coordinate;
    • Avere un pop-up con form per ottenere e dare le istruzioni;
    • Link utili.

    Vedi un esempio prima di iniziare.

    Puoi anche vedere qui, c’è la Google map Vance Auto Sales.

    Nota Bene: Google ha aggiornato la propria API il 3 aprile 2006. L’autore della guida ha modificato questo codice prima di scrivere questo tutorial per l’utilizzo della nuova API, quindi tutte le caratteristiche della versione 2 dell’API dovrebbero essere disponibili se si vuole inserirle. Inoltre, Google non fornisce alcun tipo di algoritmo di routing nelle API, quindi, se un utente digita un indirizzo e chiede le indicazioni stradali per arrivarvi, si apre una nuova finestra di Google Maps (originale) con tali indicazioni.

    Step 1 - Registra una key API
    Prima di inserire una mappa sul tuo sito cerca di registrare una Google API key.

    Per registrarti, dovrai inserire l’url del sito che sta usando questa key. La scelta migliore per tale URL è la cartella principale del tuo sito, in questo modo potrai utilizzare la mappa anche in tutte le sue sottocartelle (piuttosto che l’indirizzo assoluto della pagina che userà la mappa). Facendo in questo modo sarà possibile far girare su tutte le pagine del sito la mappa. Ad esempio inserisci http://www.mandladventures.com

    Lascia la pagina contentente la key aperta, cosi tu puoi copiare ed incollare la key in più step.
    Ricorda che se stai testando su un server localhost, quando upperai in un server online avrai bisogno di due separate key API.

    Step 2 - individua le coordinate geografiche
    Google attualmente non ha un “geocoding”. Quindi bisogna usare un alternativo.
    Geocoder.us è quello consigliato.

    Semplicemente inserisci l’indirizzo di cui cerchi le coordinate, e Geocoder.us ti restituisce la latitudine e la longitudine.

    Geocoder.us però fornisce solo gli indirizzi degli Stati Uniti. Per cercare altri indirizzi cerca free geocoder su Google.

    Step 3 - Creare un file XML
    Questo file XML riporterà tutti i punti che marcherai nella mappa. Questo file prevede anche il testo che apparirà quando il marcatore è selezionato. Nel nostro esempio creeremo solo un marcatore. Se vuoi più di un marcatore nella mappa basta aggiungerne nel codice XML qui sotto.

    <markers> <marker lat="35.827818" lng="-86.072576" html="<b/>First Baptist Church</b/> <br /> 405 West Main Street, <br /> Woodbury, TN 37190" label="FBC"/>

    </markers>

    Sostituisci lat=”35.827818″ con la latitudine del tuo indirizzo

    Sostituisci lng=”-86.072576″ con la longitudine del tuo indirizzo

    Sostituisci “First Baptist Church” con il nome della tua città.

    Cambia “405 West Main Street, <br /> Woodbury, TN 37190″ con il tuo indirizzo.
    Cambia il label=”FBC” con quello che vuoi.

    Salva il file con nome “map.xml” e uppalo nella stessa directory dove inserirai la pagina della mappa. Potresti inserirlo in un’altra directory, però poi dovresti cambiare tutti i riferimenti in “map.xml” allo step 7 del codice per farlo puntare alla tua directory.

    Ricorda: il linguaggio XML richiede tutti caratteri “speciali” di HTML.

    Si elenca una lista comune di caratteri “speciali”.

    < = &lt ;
    > = &gt ;

    / = / ;
    ] = ] ;
    [ = [ ;
    " = " ;
    ' = ' ;

    Step 4 - Richiama l’API con la tua key

    Inserisci il codice seguente nell’head della tua pagina web, ponendo la tua key API al posto di key=ABQIAAAAbTgUqmDVtw6KNosttYwutxR-kQiDMsqewHdPfI0JvuxAHQRqVhQsEF-filcfK_gQIlIUCIcFhtJH0Q”

    <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAbTgUqmDVtw6KNosttYwutxR-kQiDMsqewHdPfI0JvuxAHQRqVhQsEF-filcfK_gQIlIUCIcFhtJH0Q" mce_src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAbTgUqmDVtw6KNosttYwutxR-kQiDMsqewHdPfI0JvuxAHQRqVhQsEF-filcfK_gQIlIUCIcFhtJH0Q" type="text/javascript"></script>

    Step 5 - Aggiungi un evento onunload nel tag body

    <body onunload=”GUnload()”>

    Step 6 - Posiziona il div contenente la mappa

    <div id="map" style="width: 550px; height: 450px; border: 1px solid #000000;"></div><!Questo messaggio sarà visualizzato se JavaScript è disabilitato dal browser dell'utente-->
    <noscript><strong>JavaScript deve essere abitiliato affinche lei possa usare le API Maps di Google.</strong><br />

    Sembra che JavaScript è disabilitato o non è supportato dal suo browser. <br />
    Per visualizzare la Google Maps, abiliti JavaScript cambiando le opzioni del browser, e riprovi.<br /><br />
    </noscript>

    Inserisci questo div dove vuoi che la mappa compaia
    Cambia lo stile per adattarlo a quello del tuo sito.

    Step 7 - Inserisci la parte finale di codice

    Inserisci questo codice prima dei tag di chiusura </body> e </html> della pagina in cui hai inserito la mappa

    <script type="text/javascript">
    //<![CDATA[

    //the original code had a GMapSidebar to pick the markers from, I eliminated the GMapSidebar,
    //but deleting the code that referenced the bar corrupted the rest of the code
    //so just ignore references to GMapSidebar, unless you're really with JavaScript
    if (GBrowserIsCompatible()) {
    // this variable will collect the html which will eventually be placed in the GMapSidebar
    var GMapSidebar_html = "";

    // arrays to hold copies of the markers and html used by the GMapSidebar
    // because the function closure trick doesnt work there

    var gmarkers = [];
    var htmls = [];
    var i = 0;
    // arrays to hold variants of the info window html with get direction forms open
    var to_htmls = [];
    var from_htmls = [];

    // A function to create the marker and set up the event window
    function createMarker(point,name,html) {

    var marker = new GMarker(point);

    // The info window version with the “to here” form open (The Directions Form part.)
    to_htmls[i] = html + ‘<br>Directions: <b>To here</b> - <a href=”javascript:fromhere(’ + i + ‘)”>From here</a>’ +

    ‘<br>Start address:<form action=”http://maps.google.com/maps” method=”get” target=”_blank”>’ +
    ‘<input type=”text” size=40 maxlength=40 name=”saddr” id=”saddr” value=”" /><br>’ +
    ‘<input value=”Get Directions” TYPE=”submit”>’ +

    ‘<input type=”hidden” name=”daddr” value=”‘ + point.lat() + ‘,’ + point.lng() +

    // “(” + name + “)” +
    ‘”/>’;
    // The info window version with the “to here” form open
    from_htmls[i] = html + ‘<br>Directions: <a href=”javascript:tohere(’ + i + ‘)”>To here</a> - <b>From here</b>’ +

    ‘<br>End address:<form action=”http://maps.google.com/maps” method=”get”" target=”_blank”>’ +
    ‘<input type=”text” size=40 maxlength=40 name=”daddr” id=”daddr” value=”" /><br>’ +
    ‘<input value=”Get Directions” type=”SUBMIT”>’ +

    ‘<input type=”hidden” name=”saddr” value=”‘ + point.lat() + ‘,’ + point.lng() +

    // “(” + name + “)” +
    ‘”/>’;
    // The inactive version of the direction info
    html = html + ‘<br>Directions: <a href=”javascript:tohere(’+i+’)” mce_href=”javascript:tohere(’+i+’)”>To here</a> - <a href=”javascript:fromhere(’+i+’)” mce_href=”javascript:fromhere(’+i+’)”>From here</a>’;

    GEvent.addListener(marker, “click”, function() {
    marker.openInfoWindowHtml(html);
    });
    // save the info we need to use later for the GMapSidebar
    gmarkers[i] = marker;
    htmls[i] = html;
    // add a line to the GMapSidebar html
    GMapSidebar_html += ‘<a href=”javascript:myclick(’ + i + ‘)”>’ + name + ‘</a><br>’;

    i++;
    return marker;
    }

    // This function picks up the click and opens the corresponding info window
    function myclick(i) {
    gmarkers[i].openInfoWindowHtml(htmls[i]);
    }

    // functions that open the directions forms

    function tohere(i) {
    gmarkers[i].openInfoWindowHtml(to_htmls[i]);
    }
    function fromhere(i) {
    gmarkers[i].openInfoWindowHtml(from_htmls[i]);
    }

    //******************************************************

    //Edit these options to CONFIGURE THE MAP

    // create the map
    var map = new GMap2(document.getElementById(”map”));
    //GLargeMapControl adds large zoom and pan controls on the left,
    //you can change it by picking from two of the options described below
    //there is a GSmallMapControl for a smaller pan/zoom control
    //also there is GSmallZoomControl - a small zoom control (no panning controls)
    map.addControl(new GLargeMapControl());

    //this adds the Map, Satellite, and Hybrid buttons, delete line if you don’t want it

    map.addControl(new GMapTypeControl());

    //this adds a scale to the bottom left of the map, delete line if you don’t want it
    map.addControl(new GScaleControl());

    //type in the Geo Coordinates and default zoom level below. (Latitude, Longitude), Zoom level);
    //these Coordinates set the center of the map, they do not place the marker.
    //that is done in the map.xml file. If you want a marker to be centered, type

    //the same coordinates here that are used for that marker in the map.xml file
    //0 is zoomed all the way out.

    map.setCenter(new GLatLng(35.827818,-86.072576), 12);
    //******************************************************

    // Read the data from map.xml
    var request = GXmlHttp.create();
    request.open(”GET”, “map.xml”, true);
    request.onreadystatechange = function() {

    if (request.readyState == 4) {
    var xmlDoc = request.responseXML;

    // obtain the array of markers and loop through it
    var markers = xmlDoc.documentElement.getElementsByTagName(”marker”);

    for (var i = 0; i < markers.length; i++) {
    // obtain the attribues of each marker
    var lat = parseFloat(markers[i].getAttribute(”lat”));

    var lng = parseFloat(markers[i].getAttribute(”lng”));
    var point = new GLatLng(lat,lng);

    var html = markers[i].getAttribute(”html”);
    var label = markers[i].getAttribute(”label”);
    // create the marker
    var marker = createMarker(point,label,html);
    map.addOverlay(marker);
    }
    // put the assembled GMapSidebar_html contents into the GMapSidebar div

    document.getElementById(”GMapSidebar”).innerHTML = GMapSidebar_html;
    }

    }
    request.send(null);
    }

    else {
    alert(”Sorry, the Google Maps API is not compatible with this browser”);
    }

    // This Javascript is based on code provided by the
    // Blackpool Community Church Javascript Team

    // http://www.commchurch.freeserve.co.uk/
    // http://www.econym.demon.co.uk/googlemaps/
    //slight modifications by Matt from http://www.mandladventures.com/

    //]]>

    </script>

    Step 8 - Configura la mappa

    Modifica il codice della sezione sottostante per configurare la mappa a tuo piacimento.

    //******************************************************
    //Edit these options to CONFIGURE THE MAP
    // create the map
    var map = new GMap2(document.getElementById(”map”));
    //GLargeMapControl adds large zoom and pan controls on the left,

    //you can change it by picking to of the options described below
    //there is a GSmallMapControl for a smaller pan/zoom control
    //also there is GSmallZoomControl - a small zoom control (no panning controls)
    map.addControl(new GLargeMapControl());

    //this adds the Map, Satellite, and Hybrid buttons, delete line if you don’t want it
    map.addControl(new GMapTypeControl());

    //this adds a scale to the bottom left of the map, delete line if you don’t want it
    map.addControl(new GScaleControl());

    //type in the Geo Coordinates and default zoom level below. (Latitude, Longitude), Zoom level);

    //these Coordinates set the center of the map, they do not place the marker.
    //that is done in the map.xml file. If you want a marker to be centered, type
    //the same coordinates here that are used for that marker in the map.xml file
    //0 is zoomed all the way out.
    map.setCenter(new GLatLng(35.827818,-86.072576), 12);
    //******************************************************

    Imposta un punto centrale della mappa, ed il livello di zoom.
    Sostituisci 35.827818 con la tua latitudine

    Sostituisci -86.072576 con la tua longitudine.
    Sostituisci 12 con il tuo livello desiderato di zoom. 0 corrisponde alla più larga visuale disponibile( ovvero il territorio visibile è il maggiore possibile).
    Per cancellare un controllo rimuovi la riga di codice corrispondente.
    Inoltre puoi cambiare i tipi di controllo usati sulla mappa.
    Ad esempio, alcuni controlli possono essere più grandi o più piccoli: regolarli può essere utile se hai una mappa piccola. Nel codice sono inseriti come commenti i nomi dei controlli alternativi. Prova, ad esempio, a sostituire GLargeMapControl con GSmallMapControl.

    Step 9 - Tutorial Completo

    Goditi il risultato!

    Scarica il Sorgente usato dalla versione originale del tutorial.

    Per saperne di più vedi anche le seguenti risorse:

    Un ringraziemento speciale va a:

    Quella che segue è una mia traduzione di una presentazione PowerPoint di Matt Cutts, ingegnere software di Google, presentata al Wordcamp del 21/07/2007. Questa presentazione è stata pensata principalmente per Wordpress, ma i consigli (a parte quelli degli ultimi paragrafi), possono ritenersi validi anche per altre piattaforme di blogging.

    Buona lettura!

    1. MISCREDENZE

    Google odia alcuni siti?

    Il caso:
    http://www.alexchiu.com/spread.htm
    http://alexchiu.com/eternallife/

    Il riscontro:
    http://www.mattcutts.com/blog/avoid-keyword-stuffing/

    2. PLUGIN UTILIZZATI

    - Akismet
    - Protezione matematica da spam sui commenti
    - Google Analytics
    - sostituzione nei feed di FeedBurner
    - Democracy (sondaggi)
    - SEO Title
    - WP cache (con riserva)

    3. PLUGIN IN CONSIDERAZIONE
    - Brian’s Threaded Comments
    - Karma sui commenti (è un sistema di valutazione collettiva, vedi ad esempio i commenti in http://www.tvblog.it/)
    - evidenziazione dell’autore
    - redirezione WWW
    - redirezione con permalink
    - entrate correlate
    (more…)

    Per installare FreeGlobes RC2 su AV, basta seguire questi semplici passaggi:

    Uploadare i file in una cartella del vostro spazio web che chiamerete directory o dir o come più vi piace.

    Una volta eseguito l’upload fare partire l’installazione scrivendo nel broswer http://nomesito.altervista.org/directory/install/

    Seguire le istruzioni molto semplici ed intuitive.

    Ci sarà da inserire le seguenti informazioni:

    • Hostname/server: localhost
    • Username: nick altervista
    • Password: xxxxxxx
    • Database: my_nick altervista

    Fatto ciò si andrà ad impostare l’amministratore della directory e quindi dovrete inserire le seguenti informazioni:

    • admin: admin
    • password: xxxxxx
    • ripeti password: xxxxxx

    Con ciò avete completato l’installazione e sarete indirizzati nella pagina dove andrete a creare la vostra directory.

    Nel browser avrete un indirizzo tipo: nomesito.altervista.org/directory/admin/index.php

    Una volta completata la vostra directory riscontrerete subito un problema con la Ricerca e i Top Tags.

    Nel primo appena effettuerete una ricerca avrete un messaggio d’errore tipo:

    Fatal error: Call to undefined function: mb_convert_encoding() in /membri/nickaltervista/directory/include/common.php on line 733

    nel secondo semplicemente non saranno visibili.

    Ciò perchè AV non supporta le librerie mbstring.

    Per risolvere questo problema bisogna aprire il file include/recherche.php e andare ad eliminare questa linea di codice:

    {

    if(isUTF8($seek)) {
    $seek = utf8_decode($seek);
    }

    quindi salvare.

    Poi aprire include/common.php e andare ad eliminare questa riga:

    function isUTF8($str) {
    if ($str === mb_convert_encoding(mb_convert_encoding($str, “UTF-32″, “UTF-8″), “UTF-8″, “UTF-32″)) {
    return true;
    } else {

    return false;
    }
    }

    quindi salvare.

    Ricopiare i file nella cartella dove avete la directory e quindi directory/include.
    Ora la ricerca funzionerà senza problemi.

    Oltre la ricerca avrete risolto anche i problemi di visualizzazione dei Top Tags che ovviamente prima non erano visibili.

    Ciò vale per la versione Freeglobes RC2.
    Ora potrete godervi la vostra directory!

    Il Titolo delle pagine

    Quando installate joomla, durante la procedura di installazione vi chiederà di dare un nome al sito che comparirà in ogni pagina del vostro sito e dal punto di vista S.E.O. è molto sbagliato perchè il titolo non deve essere uguale su tutte le pagineIl “tag” title (Quello che compare sulla barra blu in alto in Internet Explorer) deve identificare il contenuto della pagina e, cosa molto più importante, è il “tag” più importante per i motori di ricerca, visto che si basano “quasi” solo su questo “tag” per determinare la posizione della pagina nelle loro “serp”, di conseguenza il titolo dovrà essere una frase di senso compiuto con la chiave di ricerca principale ed eventualmente anche secondaria insertita nel titolo. Joomla il titolo lo crea dinamicamente “prendendolo” dal link, es link giochi: il titolo della pagina diverrà : nome sito (che poi vi spiego come eliminarlo) seguito da “giochi”

    Come eliminare il nome del sito

    Nel pannello di controllo del sito selezionate “configurazione globale” e poi “sito” Troverete la voce : Nome Sito. Cancellate la scritta che troverete. Ora la vostra home page avrà come titolo : “-home-” (Naturalmente poi vi spiego come sostituire “home” con un titolo più appropriato)
    Sempre nella configurazione globale selezionate “metadata” e li troverete : Meta description e meta keyword globale del sito (globale vuol dire in tutte le pagine del sito) Lasciateli vuoti perchè altrimenti vi ritroverete in ogni pagina oltre al meta description della stessa anche quella globale… (Perchè non ho scritto anche meta keyword?Perchè oramai non viene più preso in considerazione dai motori di ricerca)

    Come sostituire “-home-” con un titolo più appropriato

    Aprite le seguenti cartelle : components/ com_content e li dentro troverete il file : content.php, apritelo con macromedia dreamweaver opp un altro editor, nella riga 221 troverete :

    $mainframe->SetPageTitle( $menu->name );

    sostituitelo con :

    $mainframe->SetPageTitle( 'Keyfrase principale - Keyword da posizionare su Google' );

    Ps i ‘ ‘ sono da lasciare.

    Ora eliminiamo il trattino (-) aprite la cartella “includes” troverete il file “joomla.php” apritelo e nella riga : 509 troverete scritto :

    $this->_head['title'] = $title ? $GLOBALS['mosConfig_sitename'] . ‘ - ‘. $title : $GLOBALS['mosConfig_sitename'];

    sostituitelo con :

    $this->_head['title'] = $title ? $GLOBALS['mosConfig_sitename'] . ‘ ‘. $title : $GLOBALS['mosConfig_sitename'];

    Salvate i due file e updateli nelle rispettive cartelle. Ricordatevi sempre che il titolo della home è quello più importante, scrivete una frase di senso compiuto con la chiave di ricerca principale ed eventualmente anche secondaria del sito. Ora la vostra home page avrà un titolo appropriato e ottimizzato, così verrete trovati dai motori di ricerca in base alle chiavi che avete inserito nel titolo della home page.

    Ottimizzazione delle url

    Come noterete le url non sono proprio un granchè… per migliorarle scaricate e installate il componente Sh404sef, attivate l’opzione seo del componente e di Joomla. Sostituite il file htaccess.txt con questo:

    ##
    # @version $Id: htaccess.txt 1570 2005-12-29 05:53:33Z eddieajau $
    # @package Joomla
    # @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
    # @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
    # Joomla! is Free Software

    ##

    #
    # mod_rewrite in use
    #

    RewriteEngine On

    ##
    ## NOTE!
    ## When using multiple Joomla sites or other web applications in sub-folders,
    ## you must explicitly turn the RewriteEngine off or use the settings

    ## recommended for the application
    ##

    # Uncomment following line if your webserver’s URL
    # is not directly related to physical file paths.
    # Update YourJoomlaDirectory (just / for root)

    RewriteBase /

    #

    rewriteCond %{HTTP_HOST} !^www\. [NC]
    rewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

    rewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([index]+)\.htm [NC]
    rewriteRule ^(index.*)$ / [NC,R=301,L]

    RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|pl|txt)$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*) index.php

    e rinominatelo .htaccess e e mettetelo nella root del sito con un client ftp. Con con le url ottimizzate in questo modo si favorisce il posizionamento nei motori di ricerca.

    Il resto della guida per ragioni tecniche è visibile sul forum.

    Articolo scritto da sielfree, admin di Sielfree.Com e di altri siti…

  • 0 Commenti
  • Archiviato in: CMS, Joomla!
  • Ecco il mio primo post sul blog… niente di nuovo, questo tutorial sui gestori di evento in JavaScript era già apparso sul forum di Punto Web… ma ripubblicato sul blog splende di una nuova luce, non trovate? A proposito, mi scuso per eventuali errori di formattazione, ma devo ancora prendere MOLTA confidenza con l’editor di WordPress…

    Finito il dovuto preambolo, iniziamo… per prima cosa cerchiamo di definire (cosa non proprio semplice) cos’è un evento: lo possiamo definire come un comportamento dell’utente monitorabile dal browser, come ad esempio il passaggio del mouse in una determinata area della pagina o la selezione di un elemento di un modulo. In JavaScript, quindi, un gestore di eventi è una modalità per intercettare questi eventi ed eseguire delle routine particolari in risposta ad essi.
    Spiegata così, la cosa è molto generica, quindi sarà meglio illustrare il tutto con degli esempi qui di seguito.

    Per iniziare: come specificare una risposta ad un evento
    Per scrivere un gestore di evento, ci sono vari modi:

    - il primo consiste nel dichiarare una funzione JavaScript e poi di assegnarla all’interno dello stesso script nel modo seguente:


    function carica ()
    {

    }

    window.onload = carica;

    è un metodo poco utilizzato perché non così immediato e perché supporta pochi tipi di evento, ma ha il vantaggio che, copiando il codice precedente in un file separato, è possibile includerlo uguale in varie pagine semplicemente collegando un file di script

    - il secondo metodo usa un approccio opposto al precedente: si specifica ciò che deve essere fatto in risposta all’evento direttamente sull’elemento corrispondente, ad esempio:

    <img src="..." alt="..." onclick="alert('Hello, World!')" />

    - il terzo metodo è una via di mezzo tra i due precedenti ed è quello più utilizzato: si crea una funzione separata dal corpo della pagina (volendo, anche in un file JavaScript esterno) e poi si richiama questa funzione in risposta ad un evento. Ecco un esempio:

    function trim_spaces (text)
    {

    return …
    }

    <input type=”text” name=”…” onblur=”this.value=trim_spaces(this.value)” />

    Nella seconda parte dell’articolo, passeremo in rassegna i principali gestori di evento e le rispettive funzioni.

    Eventi di caricamento e distruzione
    Iniziamo adesso a passare in rassegna i principali gestori di eventi:

    • onload corrisponde al completo caricamento di un oggetto (di solito un’immagine o l’intera pagina)
    • onunload corrisponde alla distruzione di un oggetto (di solito l’intera pagina).

    Ecco, ad esempio, come potete realizzare una semplice accoppiata di saluti con gli alert di JavaScript (per inciso: di norma sono piuttosto fastidiosi. Quindi cercate di valutarne l’aspetto didattico piuttosto che trovarvi un’idea da copiare):

    <body onload="alert('Benvenuto sul mio sito!')" onunload="alert('Torna presto a visitarmi!')">

    </body>

    Eventi riguardanti passaggio e clic del mouse
    Con il mouse ci si può sbizzarrire, ci sono tante cose gestibili in questo senso soprattutto per quanto riguarda le immagini. Ecco le principali:

    • onmouseover viene invocato all’entrata del mouse sopra ad un oggetto
    • onmouseout all’uscita del mouse da un oggetto
    • onmousedown viene invocato alla pressione prolungata del pulsante del mouse su un oggetto
    • onmouseup è invocato al rilascio del mouse dopo onmousedown
    • onclick viene invocato con un click del mouse su un oggetto
    • ondblclick viene invocato con un doppio click del mouse su un oggetto

    A titolo di esempio, il “classico” rollover di immagini con un qualcosa in più:

    <a href="...">
    <img src=”off.jpg” onmouseover=”this.src=’on.jpg’” onmouseout=”this.src=’off.jpg’” onmousedown=”this.src=’push.jpg’” onmouseup=”this.src=’off.jpg’” />
    </a>

    Eventi di puntamento ad oggetti di modulo
    Avete mai pensato a come su certi siti sia possibile che JavaScript verifichi all’istante i valori dei campi di un modulo? Probabilmente attraverso uno di questi gestori di evento:

    • onfocus invocato quando l’oggetto viene puntato dal mouse o dalla tastiera (dal tasto TAB per capirci)
    • onblur invocato quando l’oggetto non è più puntato dal mouse (ovvero, quando si dà il focus ad un altro oggetto)
    • onchange quando il valore di un campo di testo viene modificato
    • onsubmit invocato subito prima dell’invio di un modulo al server

    Un esempio con onblur è già stato illustrato sopra: immaginate che la funzione trim_spaces() sia un algoritmo che elimini gli spazi bianchi iniziali e finali di una stringa. Come in parte detto, però, con JavaScript potete anche verificare i dati un modulo prima di inviarlo al server, ecco come:

    function check_form ()
    {
    if (…) // condizione non valida
    return false
    if (…) // altra condizione non valida

    return false
    // tutto a posto? allora convalida
    return true
    }

    <form name=”…” action=”…” method=”…” onsubmit=”return check_form()”>

    </form>

    Eventi relativi alla tastiera

    Infine, due chicche che vi consentono di monitorare la pressione dei tasti della tastiera:

    • onkeydown invocato alla pressione di un tasto
    • onkeyup invocato al rilascio di un tasto

    Volete realizzare un convertitore di valute in tempo reale? Niente di più semplice:

    <input type="text" id="lire" onkeydown="document.getElementById('euro').value=parseFloat(this.value)/1936.27" />
    <input type=”text” id=”euro” onkeydown=”document.getElementById(’lire’).value=parseFloat(this.value)*1936.27″ />

    È tutto. Spero che questa mini guida possa risultarvi utile, in qualche modo. Per eventuali commenti o imprecazioni, i commenti del blog e il topic originale del forum sono a vostra disposizione.

    Statemi bene…

    Penalizzazioni e ban di GoogleLeggendo svariati post e blog che parlano di SEO e Web marketing, non ho fatto a meno di notare che molti utenti e webmaster, non hanno ben chiara la differenza fra sito bannato e sito penalizzato. Inoltre da un po’ di tempo, un calo nelle Serp (risultati delle ricerche), viene immediatamente associato ad una penalizzazione: non è così e questo post spero delinei al meglio i due significati e come capire se il proprio sito è penalizzato o bannato.

    Differenza fra penalizzazione e ban di un sito

    PENALIZZAZIONE: il sito internet è presente almeno con una pagina all’interno degli indici di Google, ma viene “retrocesso” di posizioni all’interno delle SERP in cui prima appariva nei primi risultati (prime 2 pagine). In questi termini, vi sono varie forme di penalizzazione (-30 penality, -950 penality, etc.) e, solitamente, la maggior parte delle penalizzazioni sono scovate al 70% grazie agli algoritmi anti-spam e viene risolta (tolta) altrettanto frequentemente con modalità algoritmiche.

    Solitamente le penalizzazioni avvengono quando si utilizzano tecniche spam (poco invasive e massicce) per falsare i risultati in SERP.

    BAN: il sito viene completamente escluso dagli indici di Google (non è in alcun modo indicizzato, anche per ricerche contenenti il nome del dominio). Questa esclusione dagli indici avviene, più o meno, al 40% in modo algoritmico, ma più frequentemente è un’operazione manuale dovuta a segnalazioni che giungono ai quality rater che studiano i siti presenti fra i risultati di ricerca. Un sito può essere bannato per svariate motivazioni, elenco solo quelle più frequenti:

  • Utilizzo di tecniche SPAM avanzate (cloaking, doorways page, etc.)
  • Backlink ad un sito Bannato (se il sito linka un sito già bannato, è probabile il ban ricada anche sul sito contenente il link)
  • Creazione di un network SPAMOra che abbiamo definito meglio i significati di penalizzazione e ban, vediamo come scoprire se un sito è vittima di queste due operazioni anti-spam eseguite da Google.Come capire se un sito è penalizzatoPersonalmente, per valutare la penalizzazione di un sito, procedo in questo modo:1) effettuare una query (ricerca) in Google per il domionio (ad esclusione del “http://www.”) ad esempio per: “nomesito.it”. Se il sito non è presente nelle prime 5 posizioni, ci sono buone possibilità che il sito sia vittima di una penalizzazione;2) per avere maggiori certezze, ripetere la query anche per il dominio con il “www.” ad esempio per: “www.nomesito.it” e si traggono le stesse conclusioni del punto precedente;3) infine, per la prova del 9, basta ricercare anche il nome del dominio (sempre senza “http://www.”) più una parola chiave principale per la quale il sito è ottimizzato, ad esempio: “nomesito.it keyword principale”. Se il sito si presenta ancora in posizioni inferiori rispetto alle prime 5, la penalizzazione è “quasi” certa (quasi perchè om condizioni particolari, tipo di fluttuazioni sinusoidali delle serp di Google, può darsi che il sito internet non sia veramente penalizzato ma solo in una particolare fase di analisi da parte di Google).Come capire se un sito è Bannato

    Sempre in modo personale, io utilizzo queste semplici tecniche per valutare se un sito è stato bannato da Google:

    1) soluzione più semplice ed immediata: effettuare una ricerca col comando “site:” + il nome di dominio, ad esempio “site:www.nomesito.it”. Se non vi sono risultati trovati, allora la probabilità che il sito sia bannato è molto alta. Attenzione però, questo potrebbe anche solamente significare che il sito non è stato ancora indicizzato.

    2) iscrivendo il sito al Webmastertool di Google, nell’homepage relativo al sito internet (dopo la verifica) è possibile vedere alcune indicazioni da parte del crawler di Google che indica chiaramente la motivazione del perchè il sito non sia presente negli indici (ricorda che dal web master tool è possibile anche richiedere la reinclusione di un sito bannato).

    Spero davvero di aver fatto chiarezza a tutti i webmaster ed appassionati che controllano periodicamente le SERP ed i risultati dei propri siti internet in funzione del ranking raggiunto su Google.

    Fonte: Marketing sui motori di ricerca

    About the Author

    Articolo a cura di Michele De Capitani
    Prima Posizione Srl - Marketing online
    Article Source:F-articles.com - free articles directory

  • Vediamo di cogliere i punti fondamentali di questa interessante analsi, sulle supposizioni ed esperienze in merito di posizionamento nel motore di ricerca più popolare al mondo: Google.I partecipanti al sondaggio, sono stati invitati ad attribuire un punteggio (da 0 a 5) ad ogni fattore preso in analisi: ecco il responso in ordine decrescente d’importanza (va ad ogni modo sottolineato il fatto che si tratta d’ipotesi prettamente soggettive, infatti si reputa che Google consideri più di 200 fattori per il calcolo del ranking dei siti nei propri risultati delle ricerche - dette SERP).

    CARATTERISTICHE POSITIVE AL POSIZIONAMENTO

    a) Posizione della parola chiave

  • 4.9 - Parola chiave nel titolo della pagina
    Inserire la keywords nel tag title della pagina risulta fondamentale ed acquista maggior rilevanza se resta invariato nel tempo
  • 3.7 - Utilizzare la parola chiave nel corpo del documento
  • 3.4 - Relazione fra i il contenuto della pagina e le parole chiave
    In effetti, è impensabile di promuovere una parola chiave che centra poco o nulla con il contenuto ed il contesto della pagina.
  • 3.4 - Parola chiave nel tag H1
    Inserire la keyword nell’intestazione della pagina sembra aiutare il posizionamento.
  • 3.0 - Parola chiave nel nome di dominio
    A mio avviso, la valutazione è corretta, ma non per una proprietà migliorativa diretta di questo attributo, al contrario i benefici sono indiretti e legati alle anchor text dei backlink (se ne parla nei punti successivi)
  • 2.8 - Parola chiave nel nome della pagina
    Ad esempio www.miosito.com/parola-chiave.html, anche questo può portare ad un miglioramento del ranking
  • 2.8 - Parola chiave nel tag H2,H3,Hx

    Avere le proprie keywords fra questi tag di intestazione migliora la tematizzazione della pagina e di conseguenza la posizione nelle SERP

  • 2.5 - Parola chiave nel tag alt delle immagini
    Oltre ad essere un buon aiuto SEO è anche utilissimo per gli utenti del sito ed è sinonimo di usabilità
  • 2.4 - Parola chiave nel tag Bold e/o Strong
    Evidenziare le keyword con i relativi tag per i grassetti (”B” e “STRONG”)
  • 2.1 - Parola chiave nel metatag description
    Utilizzare la keyword nell’apposito metatag sembra non incidere sul posizionamento ma risultata di fondamentale importanza per aumentare la percentuale di click sul link del sito (aumento CTR%)
  • 1.2 - Parola chiave nel metatag keywords
    Questo tag, è ormai obsoleto e non più preso in considerazione dalla maggior parte dei motori di ricerca<em>b) Caratteristiche della pagina
  • 4.1 - Organizzare la struttura dei link in modo tale che la pagina principale riceva molti link interni
  • 3.5 - Qualità degli outbound links
    Calcolata in funzione della popolarità e del settore d’appartenenza della pagina, si basa sul principio del: se parli di un argomento nel dettaglio, nomini anche le fonti più attendibili per gli approfondimenti. Di conseguenza il documento acquista d’importanza e quindi migliori posizionamenti.
  • 3.4 - Età del documento
  • 3.2 - Quantità di testo indicizzabile dallo spider
    Cioè quanto testo è “pulito” e facilmente recuperabile dallo spider. Un esempio contrario possono essere i siti realizzati con tecnologia Flash
  • 3.0 - Qualità dei contenuti in misura algoritmica
    Ci si riferisce al valore semantico del documento, ciò significa che il testo deve avere un filo logico di redazione ed esprimere un significato
  • 2.8 - Organizzazione dei contenuti (secondo schemi prestabiliti, tipo “stile giornalistico”)
  • 2.4 - Frequenza di aggiornamento delle pagine
  • 1.9 - Numero di slashes presenti nella URL (per definire le varie sezioni della pagina)
  • 1.8 - Correttezza grammaticale e nel lessico
  • 1.4 - Validazione del codice HTML (W3C Standard)c) Caratteristiche del dominio
  • 4.5 - Livello globale di popolarità del sito
    Calcolata in funzione della linkpopularity generale
  • 4.5 - Livello globale di popolarità del sito
    Calcolata in funzione della linkpopularity generale
  • 4.0 - Anzianità del sito internet
  • 3.9 - Contestualità dei backlink
    Ricevere link da siti che trattano gli stessi temi o affini a quello del sito
  • 3.9 - Backlink da comunità a tema
  • 3.5 - Livello di crescita nel tempo dei backlink
  • 3.2 - Attinenza del contenuto intero del sito con la ricerca effettuata
  • 2.7 - Performace del sito: CTR, visite dirette, visite da preferiti, etc.
    Difatti si presume che Google riesca a tener traccia di queste importantissime informazioni e che le utilizzi per determinare il ranking
  • 2.6 - Attribuzione manuale di autorità al sito da parte di tecnici Google
  • 2.5 - Estensione del sito (.it, .com, .org, etc.)
  • 2.5 - Livello di crescita nel tempo delle pagine del sito
  • 2.0 - Numero di ricerche dirette per brand e/o nome sito
  • 1.4 - Verifica del dominio con lo strumento webmastertool di Google</strong><strong><em>d) 4. Caratteristiche dei backlink in entrata
  • 4.4 - Parola chiave nell’anchor text del link
    Questo significa di ricevere link al sito con la parola chiave come testo linkato.
  • 3.6 - Quantità dei backlink

    Numero totale dei link in entrata al sito.

  • 3.5 - Qualità dei backlink
    Ricevuti da siti attinenti ed a tema con gli argomenti del sito.
  • 3.5 - Quantità dei backlink da comunity a tema
  • 3.1 - Anzianità dei link
  • 3.1 - Testo attorno ai backlink
    Difatti Google per attribuire il valore di un backlink riesce ad analizzare anche le parole che contornano il link in modo da capire se si tratta di un link a tema oppure un collegamento sporadico.
  • 2.9 - Quantità dei backlink semplici (solo nome dominio come anchor text)
  • 2.5 - Estensione dei siti linkanti (.it, .com, etc.)
  • 2.5 - Pagerank delle pagine linkanti (misurato con la toolbar di Google)
  • 2.5 - Livello di volatilità di ricezione ed eliminazione dei backlink
    CARATTERISTICHE NEGATIVE PER IL POSIZIONAMENTO
  • 3.8 - Tempo di down del server dove risiede il sito
  • 3.6 - Contenuti similari o duplicati ad altri già presenti negli indici
  • 3.5 - Link in uscita di bassa qualità e/o a siti SPAM
  • 3.3 - Titoli di pagina e metatag duplicati per molte pagine del sito
  • 3.3 - Partecipazione a linkfarm e/o attività di vendita links
  • 3.3 - Utilizzo di tecniche Spamming (Stuffing, testo nascosto, etc.)
  • 2.8 - Tempi lenti di risposta del server
  • 2.2 - Link in entrata da siti SPAM (Spam Engine, domini banati, etc.)
  • 2.1 - Basso livello di visitatori sul sito (misurati tramite la toolbar, clicks sulle serp, etc.)Questo il risultato del questionario a 37 esperti SEO Americani, con l’aggiunta di qualche riflessione personale.La presente lista, è un ottimo punto di partenza da tenere in evidenza ogni qualvolta si debba intervenire sull’ottimizzazione e la promozione di siti internet nei motori di ricerca (in modo particolare su Google).In ogni caso, vista la segretezza di molti parametri e fattori presi in considerazione per il calcolo del ranking, il modo migliore è sperimentare, migliorarsi in base ai risultati ed esperienze conseguite.Fonte Prima Pubblicazione: Articoli SEO e Web Marketing
  • About the Author

    A cura di Michele De Capitani
    Prima Posizione Srl - Agenzia web Marketing
    Article Source:F-articles.com - free articles direcoty