Da oggi abbiamo deciso di dotarci di un servizio personalizzato per la gestione degli Short URL o anche chiamato URL shortening, servizio che naturalmente proponiamo ai nostri attuali e futuri clienti.

Naturalmente esistono servizi di URL shortening come bitly.com, ow.ly, tinyurl.com, bit.do o Google URL Shortener per citarne semplicemente qualcuno, ma crediamo che la gestione interna del URL shortening sia vantaggiosa per svariate ragioni:

  1. Personalizzazione del dominio di URL shortening che rispecchia la vostra società: ad esempio il nostro nome di dominio dedicato al  URL shortening è m7v.it
  2. Personalizzazione del URL: ad esempio per questo articolo http://m7v.it/short-url, inoltre esiste la possibilità di creazione automatica sequenziale degli short URL
  3. Gestione delle statistiche di ogni singolo URL che può essere adattato a svariate strategie di marketing
  4. Creazione automatica di un QR code semplicemente aggiungendo l’estensione .qr al vostto Short URL: ad esempio http://m7v.it/short-url.qr
  5. Eventuale personalizzazione per funzioni custom grazie al sistema che adottiamo: yourls progetto open source che rispecchia la nostra filosofia nell’utilizzo del software.
  6. Utilizzo di bookmarklets  per fare in modo pratico ed efficace dell’ URL shortening
  7. Possibilità di acceso privato o pubblico per la creazione di Short URL

La gestione è molto semplice e le risorse richieste al server sono minime, per conseguenza i costi sono molto contenuti portando vantaggi di gestione e d’immagine innegabili.

URL shortening fai da te

Qui sotto diamo una rapida spiegazione di come si può installare yourls per coloro che volessero adottare questa soluzione indipendentemente.

Requisiti:

  1. Un servizio di hosting che supporti  il mod_rewrite, PHP 5.2 (versione minima), MYSQL 4.1 (versione minima)
  2. La possibilità di creare un nuovo Data Base MySQL sul vostro server di Hosting (è possibile anche creare le tavole dedicate a yourls all’interno di un data base preesistente ma è un’opzione di cui non ci occuperemo in questa mini guida)
  3. Il vostro hosting deve permettere di gestire più domini per lo stesso abbonamento
  4. Acquisire un nome di dominio che rispecchi le vostre esigenze e sia il più corto possibile, non tralasciate le estensioni di altri paesi se possono creare un nome che si adatti ai vostri bisogni. Alcune estensioni, tra cui .it (chiamate tecnicamente Top-level domain) non permettono nomi più corti di 3 lettere per il nome di dominio stesso (il Second-level domain name), ma altre sì.
    Vi consiglio di prendere un po’ di tempo per la scelta del nome vista la sua importanza, potete usare Domainr come strumento di ricerca rapido.

Procedura:

  1. Scaricate yourl da github: scaricate il file source code: è proprio quello che dovete usare. Ultima versione quando stiamo scrivendo questo articolo è la 1.7
  2. Dezippate il file scaricato.
  3. Fate una copia del file config-sample.php che troverete nella cartella user  e rinominatelo config.php
  4. Aprite il file config.php col vostro editore di testo/codice preferito (se usate notepad vi sconsigliamo di usarlo e di scaricare notepad++)
  5. Create un nuovo Data Base MySQL e assegnateli un user (e relativa password)  univoco con tutti diritti i accesso al Data Base appena creato usando l’interfaccia del vostro servizio di hosting, purtroppo le procedure sono svariate quasi quante sono i servizi di Hosting internet esistenti sul mercato per cui non possiamo indicarle tutte, ma normalmente dovreste trovare la procedura nella FAQ del vostro hoster
    Vi consigliamo di non dare nomi troppo semplici né allo user né alla password né al database, usate degli strumenti online o ancora meglio programmi come keepass per generare le Password ma anche i nomi del Data Base e dello user. I nomi del database e dell’user name devono essere almeno di 7-8 caratteri generati casualmente composti da minuscole, maiuscole, e numeri,  accompagnati da una Password di 18 caratteri che usa minuscole, maiuscole, e diversi caratteri speciali garantiscono un’ottima sicurezza.
  6. Una volta effettuata quest’ultima operazione aggiungete al vostro file config.php le informazioni corrette.
    • il nome del User che ha accessso al Data Base che avete appositamente creato per yourls
      /** MySQL database username */
      define( 'YOURLS_DB_USER', 'your db user name' );
      
    • la Password del User inserito sopra
      /** MySQL database password */
      define( 'YOURLS_DB_PASS', 'your db password' );
    • il nome del Data Base che avete creto appositamente per yourls
      /** The name of the database for YOURLS */
      define( 'YOURLS_DB_NAME', 'yourls' );
  7. Ora analizziamo una a una le opzione che dobbiamo parametrare nel file config.php
    • La maggior parte dei servizi di hosting accedono al loro Data Base MySQL interno utilizzando localhost ma esistono eccezioni. Per cui vi consigliamo di controllare nella FAQ del vostro hoster come accedere al vostro database MySQL.
      /** MySQL hostname.
       ** If using a non standard port, specify it like 'hostname:port', eg. 'localhost:9999' or '127.0.0.1:666' */
      define( 'YOURLS_DB_HOST', 'localhost' );
    • Qui parametrate il prefisso delle tavole del Data Base che saranno usate da yourls, vi sconsigliamo di mantenere il nome yourls_  per non facilitare la vita agli Hacker che tenterebbero di fare del MySQL injection. Generate una serie aleatoria di caratteri (da 6 a 8 composti da minuscole, maiuscole, e numeri) ad esempio: CsfC2QYB e trasformate il vostro prefisso in qualcosa come: yourls_CsfC2QYB_ o YLSCsfC2QYB_
      /** MySQL tables prefix */
      define( 'YOURLS_DB_PREFIX', 'yourls_' );
    • Qui definite il nome del vostro sito, non inserite il www o qualsiasi altro prefisso (host name) lasciate il nome il più corto possibile dopo tutto l’ URL shortening deve essere il più breve possibile.
       ** If you define it to "http://site.com", don't use "http://www.site.com" in your browser (and vice-versa) */
      define( 'YOURLS_SITE', 'http://site.com' )
    • inserite la zona oraria che vi corrisponde, ad esempio  in Italia la nostra zona oraria é la CET (Central European Time) che ha un offset rispetto al GMT (Greenwich Mean Time) è di +1, per cui rimpiazzate lo 0 (zero) con 1.
      /** Timezone GMT offset */
      define( 'YOURLS_HOURS_OFFSET', 0 )
      define( 'YOURLS_HOURS_OFFSET', 1 );
    • Qui inserite la lingua che desiderate per l’interfaccia, per l’italiano inserite it_IT, trovate la lista dei linguaggi esistenti e le spiegazioni per crearne uno nuovo sul sito di yourls  in seguito dovete copiare i  file .mo e .po, che potete scaricare dal link precedente, per la lingua scelta, all’interno della cartella user/languages/

      /** YOURLS language or "locale".
       ** Change this setting to "localize" YOURLS (use a translation instead of the default English). A corresponding .mo file
       ** must be installed in the user/language directory.
       ** See http://yourls.org/translations for more information */
      define( 'YOURLS_LANG', '' );


      Per la lingua italiana settate come segue:

      define( 'YOURLS_LANG', 'it_IT' );
    • Questo parametro vi permette di impostare il comportamento di yourls: se è settato su true ogni URL lungo avrà uno short URL univoco se invece è settato su false potete avere diversi Short URl che redirigono verso lo stesso URL lungo.
      /** Allow multiple short URLs for a same long URL
       ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
       ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
      define( 'YOURLS_UNIQUE_URLS', true );
    • Questo parametro vi permette di rendere il vostro servizio di URL shortening privato (acceso via user name e password) o pubblico (se settato su: false).
      /** Allow multiple short URLs for a same long URL
       ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
       ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
      define( 'YOURLS_UNIQUE_URLS', true );
    • Qui dovete generare una chiave che sarà il nome del cookie generato da yourls per il vostro sito (vi ricordo che se rendete il vostro sito pubblico dovete inserire un’informativa della privacy riguardante l’utilizzo dei cookie in conformità con la cookie law privacy). Vi consiglio di generare una  serie aleatoria di caratteri (da 14 a 16 composti da minuscole, maiuscole e numeri) e precederli dal nome del vostro dominio, ad esempio se il dominio è m7v.it e la serie di caratteri casuali fosse BNXs3xld2ZqrhoBu
      /** A random secret hash used to encrypt cookies. You don't have to remember it, make it long and complicated. Hint: copy from http://yourls.org/cookie **/
      define( 'YOURLS_COOKIEKEY', 'modify this text with something random' );
      /** A random secret hash used to encrypt cookies. You don't have to remember it, make it long and complicated. Hint: copy from http://yourls.org/cookie **/
      define( 'YOURLS_COOKIEKEY', 'm7vit_BNXs3xld2ZqrhoBu' );
    • Qui definite lo user name e la password per gli utenti che possono accedere ed amministrare l’interfaccia di yourls e/o creare short URL nel caso il vostro servizio fosse settato come privato. Potete avere più di un utente, ma ricordate di cancellare le linee esistenti all’interno delle parentesi dell’array e la virgola.
      /** Username(s) and password(s) allowed to access the site. Passwords either in plain text or as encrypted hashes
       ** YOURLS will auto encrypt plain text passwords in this file
       ** Read http://yourls.org/userpassword for more information */
      $yourls_user_passwords = array(
      	'username' => 'password',
      	'username2' => 'password2'	// You can have one or more 'login'=>'password' lines
      	);
      $yourls_user_passwords = array(
      	'nomeutente' => 'usate_sempre_una_pw_sicura'
      	);
    • Questo parametro serve per attivare il Debugging e non dovrebbe interessarvi se non siete degli sviluppatori, lasciatela come è su false.

      /** Debug mode to output some internal information
       ** Default is false for live site. Enable when coding or before submitting a new issue */
      define( 'YOURLS_DEBUG', false );
    • Qui parametrate come yourls gestisce gli short URL: se settato su 356 potete usare solo le lettere minuscole e numeri se settate su 62 potete usare maiuscole, minuscole, numeri.
      /** URL shortening method: 36 or 62 */
      define( 'YOURLS_URL_CONVERT', 36 );
      /*
       * 36: generates all lowercase keywords (ie: 13jkm)
       * 62: generates mixed case keywords (ie: 13jKm or 13JKm)
       * Stick to one setting. It's best not to change after you've started creating links.
       */
    • Qui definite le parole vietate che se contenute nel URL lungo non permettono di creare uno short URL, è utile sopratutto se il vostro sistema è settato su pubblico o se avete molti utilizzatori.
      * Reserved keywords (so that generated URLs won't match them)
      * Define here negative, unwanted or potentially misleading keywords.
      */
      $yourls_reserved_URL = array(
      	'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick', 'gay',
      );
    • per il file config.php è tutto e possiamo procedere alla fase successiva
  8. Copiate via FTP (metodo consigliato) alla radice del vostro nuovo nome di dominio tutto il contenuto della cartella che avete  generato dezippando l’archivio contenente yourls compreso il file config.php, che avete creato e configurato in precedenza all’interno della cartella /user (se il vostro hoster prevede la creazione di sotto cartelle per i domini alternativi copiatelo all’interno della sotto cartella dedicata)
  9. Ora siete pronti a concludere l’installazione: usando il vostro navigatore preferito andate alla pagina: http://yoursite.com/admin/ l’operazione dovrebbe concludersi senza errori, indicandovi che le tavole del Data Base sono state create così come il file .htaccess
  10. Ora potete accedere all’interfaccia di gestione di yourls attraverso l’indirizzo http://yoursite.com/admin/  ed inserendo lo user name e la password che avete indicato nel file config.php.
  11. Controllate che i diritti d’accesso del file config.php siano settati su 644
  12. Se dirigete il vostro navigatore alla radice del vostro nuovo sito all’indirizzo  http://yoursite.com/ noterete che potete vedere l’arborescenza della radice del sito, questo in realtà non è un bug ma una feature per darvi la possibilità di scegliere ciò che più vi è utile. Se settate il sito in pubblico vorrete probabilmente vedere una pagina che permette di creare uno short URL se invece avete settato il sito in privato probabilmente vorrete redirigere l’acceso al vostro sito principale (della vostra società o del vostro Blog).
    Per questa seconda opzione (la prima opzione non è oggetto di questo breve articolo) vi sconsiglio l’uso del file .htaccess se non sapete esattamente cosa fate ma di creare alla radice del sito un file index.php e copiare il seguente contenuto:

    <?php 
    header("HTTP/1.1 301 Moved Permanently"); 
    header("Location: http://il-vostro-sito-principale.com/"); 
    ?>

    se non volete fare una ridirezione permanente potete rimuovere semplicemente la seconda linea e il codice diventa:

    <?php 
    header("Location: http://il-vostro-sito-principale.comm/"); 
    ?>

     

Questo è tutto per ciò che riguarda l’istallazione di yourls, ora potete navigare nel menu per vedere le diverse possibilità. Vi consiglio di fare una visita alla sezione tools (strumenti se avete installato in Italiano) in cui troverete utili Bookmarklets per la creazione dei vostri short URL.

Spero questo breve articolo possa essere utile per coloro che vogliono adottare il servizio diURL shortening in modo indipendente attraverso yourls.