CPanel – Script Backup Automatico 2011 : Redirect 301

Questo script utilizza i CronJob di cPanel per effettuare dei Backup automatici tramite uno script PHP per poi caricarlo su un server FTP specificato.

Cosa sono i CronJob?

I Cron job ti permettono di automatizzare alcuni comandi o script sul tuo server per completare azioni ripetitive automaticamente. Un cron job ti permette di eseguire un certo comando secondo i tempi impostati nel cron job stesso. Ad esempio, potresti impostare un cron job per cancellare i file temporanei ogni settimana così che il tuo spazio disco non si possa riempire o come in questo caso, effettuare dei backup completi automatici.

Lo Script

Lo script originale è stato creato da Justin Cook, mentre questa versione è stata modificata opportunamente per lavorare con le versioni più recenti di cPanel.

La prima cosa che bisogna fare è aprire Notepad o un qualsiasi editor di testo e copiare il codice seguente:

<?php// PHP script to allow periodic cPanel backups automatically, optionally to a remote FTP server.
// This script contains passwords. KEEP ACCESS TO THIS FILE SECURE! (place it in your home dir, not /www/)

// ********* THE FOLLOWING ITEMS NEED TO BE CONFIGURED *********

// Info required for cPanel access
$cpuser = “username”; // Username used to login to CPanel
$cppass = “password”; // Password used to login to CPanel
$domain = “domain”; // Domain name where CPanel is run

// Info required for FTP host
$ftpuser = “username@domain.com”; // Username for FTP account
$ftppass = “password”; // Password for FTP account
$ftphost = “ftp.domain.com”; // Full hostname or IP address for FTP host
$ftpmode = “ftp”; // FTP mode (“ftp” for active, “passiveftp” for passive)
$ftpport = “21”;
$rdir = “/”;

// Notification information
$notifyemail = “your@email”; // Email address to send results

// Secure or non-secure mode
$secure = 0; // Set to 1 for SSL (requires SSL support), otherwise will use standard HTTP

// Set to 1 to have web page result appear in your cron log
$debug = 0;

// *********** NO CONFIGURATION ITEMS BELOW THIS LINE *********

if ($secure) {
$url = “ssl://”.$domain;
$port = 2083;
} else {
$url = $domain;
$port = 2082;
}

$socket = fsockopen($url,$port);
if (!$socket) { echo “Failed to open socket connection… Bailing out!\n”; exit; }

// Encode authentication string
$authstr = $cpuser.”:”.$cppass;
$pass = base64_encode($authstr);

$params = “dest=$ftpmode&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&port=$ftpport&rdir=$rdir&submit=Generate a full backup”;

// Make POST to cPanel
fputs($socket,”POST /frontend/x3/backup/dofullbackup.html?”.$params.” HTTP/1.0\r\n”);
fputs($socket,”Host: $domain\r\n”);
fputs($socket,”Authorization: Basic $pass\r\n”);
fputs($socket,”Connection: Close\r\n”);
fputs($socket,”\r\n”);

// Grab response even if we don’t do anything with it.
while (!feof($socket)) {
$response = fgets($socket,4096);
if ($debug) echo $response;
}

fclose($socket);

?>

Compilare i dettagli elencati spiegati nei commenti (cPanel Access etc.), tranne le impostazioni e la porta FTP. Salvare il file come backup.php e poi caricarlo nella directory principale del server. Attenzione: non caricare questo file nella directory public_html del vostro sito, in quanto contiene nome utente e password che concedono l’accesso a cPanel.

 

Creare un nuovo processo cron andando in cPanel> Cron Job e utilizzare queste impostazioni:

 

Consigliamo di impostare il tempo di esecuzione : una volta al giorno e di usare il seguente comando:

/usr/local/bin/php /home/username/backup.php

L’impostazione “username” è il vostro nome utente.

Se tutto va bene, il cron verrà eseguito a mezzanotte con le impostazioni che abbiamo usato nell’immagine e il backup sarà caricato come archivio tar.gz nel server remoto. In seguito, per ripristinare il backup effettuato, contattate l’amministratore del server.

 



Una Sitemap (mappa del sito) è un elenco di pagine di un sito web organizzate in modo gerarchico, accessibili ai crawler o dagli utenti. Il file Sitemap.xml contiene tutti gli URL del sito, questo file e di conseguenza tutte le pagine segnalate all’interno del file (sitemap.xml) sono scansionate ed indicizzate constantemente dai crawler. Bing, Google, Yahoo e Ask supportano il protocollo Sitemap.

 

XML Sitemap esempio:

<loc>http://www.tuosito.it/?id=1</loc>
<lastmod> 2011-07-2</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.tuosito.it/?id=2</loc>
<lastmod> 2011-07-2</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://www.tuosito.it/?id=3</loc>
<lastmod> 2011-07-2</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
</urlset>

 

Priority “priorità” indica solo l’importanza di un URL relativo rispetto agli altri URL del sito e non implica alcun effetto sul posizionamento delle pagine nei risultati di ricerca.

 

Ci sono generatori automatici di Sitemap XML disponibili anche per siti più complessi che permettono di creare la sitemap di un sito in automatico.

xml-sitemaps.com

Permette di creare una sitemap XML che può essere inviata a Google , Bing , Yahoo e altri motori di ricerca per aiutarli a migliorare la scansione del sito web. Limite massimo 500 pagine per sitemap.

seoutility.com

Questo generatore di SiteMap ha il compito di estrarre fino a 5000 url presenti all’interno delle  pagine di un sito web e crea un file xml rispettando la sintassi prevista dal protocollo.

auditmypc.com

Un altro generatore di Sitemap,  programmato in Java, il tool restituisce la sitemap nel formato xml, html e un report da visualizzare con excel.

tuttowebmaster.eu

Il tools di Tuttowebmaster (Google SiteMap Generator) analizza il sito web e cataloga gli URL delle pagine in un file xml rispettando la sintassi prevista dal protocollo ed effettuando le principali operazioni di ottimizzazione.

makeasitemap.com

Questo generatore di Sitemap online permette la creazione di una sitemap con un massimo di 50.000 URL.

 

Un Wiki di Google contenente link e strumenti che generano file nel formato XML Sitemap.

http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators

 

Stai cercando un Hosting Professionale?

I nostri Piani Hosting sono l’ideale. Offriamo Hosting a prezzi contenuti e prestazioni elevate.

Contattaci

 

Il DNS (Domain Name System) traduce un nome di dominio in un numero IP (detta risoluzione diretta) e viceversa da un numero IP ad un nome di dominio (detta risoluzione inversa).

Esistono diversi tipi di record DNS e ad ognuno possono corrispondere diversi tipi di informazioni.
I principali sono:

  • Record A – Indica la corrispondenza tra un nome ed uno (o più) indirizzi IP (per la precisione indirizzi IPv4, ovvero la versione attualmente in uso).
  • Record MX – (Mail eXchange) indica a quali server debba essere inviata la posta elettronica per un certo dominio.
  • Record CNAME – Sono usati per creare un alias, ovvero per fare in modo che lo stesso calcolatore sia noto con più nomi. Uno degli utilizzi di questo tipo di record consiste nell’attribuire ad un host che offre più servizi un nome per ciascun servizio. In questo modo, i servizi possono poi essere spostati su altri host senza dover riconfigurare i client, ma modificando solo il DNS.
  • Record PTR – Il DNS viene utilizzato anche per realizzare la risoluzione inversa, ovvero per far corrispondere ad un indirizzo IP il corrispondente nome di dominio. Per questo si usano i record di tipo “PTR” (e una apposita zona dello spazio dei nomi in-addr.arpa).
  • Record AAAA – È come il Record A ma lavora con l’IPv6 e restituisce un indirizzo IPv6.
  • Record SRV – Identificano il server per un determinato servizio all’interno di un dominio. Possono essere considerati una generalizzazione dei record MX.
  • Record TXT – Associano campi di testo arbitrari ad un dominio. Questi campi possono contenere una descrizione informativa oppure essere utilizzati per realizzare servizi.

Vi sono anche tipi di record “di servizio”, necessari al funzionamento del database distribuito:

  • Record NS – Utilizzato per indicare quali siano i server DNS autorevoli per un certo dominio, ovvero per delegarne la gestione.
  • Record SOA – (Start of Authority) usato per la gestione delle zone DNS.

 

Dopo la Registrazione o il Trasferimento di un Dominio

Dal momento in cui vengono inseriti dei nuovi IP e modificati i DNS, inizia la Propagazione dei DNS, un periodo che dura all’incirca dalle 2 alle 12 ore durante la quale il proprio sito potrebbe non essere visualizzato correttamente e risultare irraggiungibile.

 

Come Verificare la Propagazione DNS?

Per controllare la corretta propagazione dei DNS del proprio sito e verificarne eventualmente malfunzionanti sono disponibili alcuni Tools Online.

ViewDNS.Info è uno dei migliori e il più facile da usare per la Propagazione Dns. Basta accedere al sito Web, inserire il nome del dominio e lui cercherà lo stato della propagazione DNS in 19 server, mostrando il risultato dell’IP del server da cui ha ottenuto risultato.

HOST-Tracker.com offre il monitoraggio da molti nodi diffusi in tutto ilmondo. Per controllare se il sito è attivo e accessibile basta controllare l’ip del server e se non è lo stesso IP del vostro server, allora non è completamente propagato.

IntoDNS.com è sicuramente il più usato, anche qui basta digitare il proprio nome a dominio per eseguire il test e verranno evidenziati eventuali problemi trovati.

WhatsmyDNS.net consente di eseguire una ricerca DNS per verificare l’indirizzo IP i nomi degli host e le altre informazioni DNS contro una selezione di name server a caso in tutto il mondo, utile per verificare lo stato attuale della propagazione dei DNS dopo aver modificato le zone domini.

DNSqueries.com offre molti Tools Diagnostici, tra cui Check DNS Dominio.

 

Alla Prossima

 

Stai cercando un Hosting Professionale o vuoi Registrare un Dominio?

I nostri Piani Hosting sono l’idealeOffriamo Hosting a prezzi contenuti e prestazioni elevate.

 

PHP è il linguaggio di scripting più importante per lo sviluppo web. E ‘gratuito, open source e server-side (il codice viene eseguito sul server). MySQL è un Relational Database Management System (RDBMS) che utilizza Structured Query Language (SQL), anch’esso è gratuito e open source. La combinazione di PHP e MySQL consente di creare praticamente qualsiasi tipo di sito web, dal modulo di contatto al portale aziendale.

 

Che cosa è PHP?

PHP è stato inizialmente creato come piattaforma di scripting, chiamato “Personal Home Page”. Oggi PHP (l’abbreviazione di Hypertext Preprocessor) è un’alternativa alle pagine di Microsoft ASP (Active Server Pages).

PHP è un linguaggio lato server (open source) che viene utilizzato per creare pagine web dinamiche, solitamente è usato in combinazione con un database MySQL su un server Linux / UNIX  e può essere anche integrato nell’HTML.

Una spiegazione completa di tutti i tag PHP, manuale d’uso e molti tutorial si trovano sulla pagina ufficiale di PHP .

 

Che cosa è MySQL?

MySQL è un Relational Database Management System (RDBMS) che utilizza Structured Query Language (SQL), anch’esso è gratuito e open source.

SQL è il linguaggio più popolare per l’aggiunta, l’accesso e la gestione dei contenuti in un database. E ‘ noto per la sua rapida elaborazione, affidabilità, facilità e flessibilità di utilizzo. MySQL è una parte essenziale di quasi tutte le applicazioni open source PHP, alcuni esempi per PHP / MySQL sono: phpBB, osCommerce,  Joomla e WordPress .

 

Creazione dell’utente e del database MySQL

Per creare un database MySQL, entriamo in cPanel (incluso nei nostri Piani Hosting) e clicchiamo su Database MySQL.

 

 

 

 

Per creare un nuovo database è necessario immettere il nome desiderato per il database e cliccare su Crea Database.

 

 

 

 

 

 

Verrà visualizzata una schermata di conferma, informando che il database è stato creato correttamente.

 

 

 

 

 

 

NB: Il database MySQL è stato creato con il nome utente (Account) come prefisso: nomeutente_nomedatabase, questo è il nome che si deve utilizzare per le applicazioni.

 

Ora è possibile continuare con la creazione di un utente che dovrebbe essere in grado di connettersi al database appena creato. Clicchiamo su Passa agli Utenti mySQL: per creare un utente è sufficiente inserire il nome utente, la password desiderata e cliccare su Crea Utente.

 

 

 

 

 

NB: Si dovrebbe sempre tenere a mente che il nome utente (Account cPanel) verrà aggiunto come prefisso a tutti i database e i nomi degli utenti creati.

 

Una volta che il database e il nome utente sono stati creati è possibile aggiungere alcuni privilegi per l’utente al database. Clicchiamo su Aggiungi un utente al database e su Invia.

 

 

 

 

Sarete reindirizzati ad una schermata in cui vi sarà chiesto di scegliere i privilegi desiderati. Si consiglia di selezionare tutti i privilegi.

 

Gestire il Database mySQL con phpMyAdmin

phpMyAdmin supporta la maggior parte delle funzioni di MySQL come sfogliare, creare, copiare e modificare i database, le tabelle, i campi e gli indici, eseguire query MySQL, gestire procedure e funzioni. Inoltre è possibile Importare dati da file CSV e SQL o esportare i dati in vari formati: CSV, SQL, XML, PDF, Word, Excel, LATEX e altri. La lista completa delle caratteristiche di PhpMyAdmin si trova nel sito ufficiale .

Per gestire il database appena creato clicchiamo su phpMyAdmin

 

 

 

 

Si aprirà una nuova pagina del Browser con phpMyAdmin caricato.

 

 

 

 

 

 

 

Selezionando il database sarà possibile effettuare molte operazioni: eseguire query MySQL, ottimizzare, riparare, gestire il backup o il ripristino del database e molto altro.

 

Creare una tabella in un Database 

Prima di tutto è necessario creare un tabella e impostare i campi corrispondenti in essa.

La creazione di una tabella in phpMyAdmin è semplice, basta cliccare su Crea Tabella, digitare il nome, selezionare il numero di campi e cliccare su Esegui.

 

 

 

 

 

Compiliamo i campi per il database e salviamo.

 

In alternativa, è possibile eseguire una query MySQL, che creerà la tabella.

Il formato è il seguente:

CREATE TABLE tablename (

Fields

)

I campi sono definiti come segue:

fieldname type(length) extra info,

I campi sono separati da virgola.

Per esempio, se si desidera creare una tabella chiamata Utenti con 3 campi in esso – Nome, Cognome e Età è necessario eseguire la seguente query:

CREATE TABLE Members
(
FirstName varchar(15),
LastName varchar(15),
Age int
);

 

Come connettersi al Database

Ora, stabiliamo una connessione al database MySQL. Questo è un passo estremamente importante, perché se lo script non riesce a connettersi al suo database, le query al database fallisce.

Una buona pratica quando si utilizzano i database è quello di impostare il nome utente, la password e i valori del database all’inizio del codice dello script.

$username=”nome_username”;
$password=”nome_password”;
$database=”nome_database”;

Sostituiamo “nome_utente”, “nome_password” e “nome_database” con il nome utente MySQL, password e database che verrà utilizzato dallo script.

Vi starete chiedendo se mantenere la password nel file è un rischio per la sicurezza. Non c’è bisogno di preoccuparsi perché il codice sorgente PHP viene elaborato dal server prima di essere inviato al browser, quindi il visitatore non vedrà il codice dello script nel codice sorgente della pagina.

Colleghiamo lo script PHP al database. Questo può essere fatto con la funzione PHP mysql_connect :

mysql_connect(localhost,$username,$password)

Questa linea dice a PHP di connettersi al server di database MySQL a ‘ localhost ‘ (localhost è il server MySQL, che di solito va sullo stesso server fisico come lo script).

Quando la connessione viene stabilita si deve selezionare il database che si desidera utilizzare, questo dovrebbe essere un database in cui il nome utente ha accesso. Questo passo può essere completato attraverso il seguente comando:

@mysql_select_db($database) or die( “Unable to select database”);

Se lo script non riesce a connettersi si fermerà l’esecuzione e verrà visualizzato il messaggio di errore:

Unable to select database

Una funzione PHP importante è la seguente:

mysql_close();

Questa è una funzione molto importante in quanto chiude la connessione al server. Lo script rimarrà in esecuzione se non si include questa funzione. Troppe connessioni MySQL aperte possono causare problemi per l’account.

 

Come interrogare il Database

Ci sono due modi per interrogare un database. Uno è quello di inserire un comando in PHP.

Un altro modo è di definire il comando come una variabile .

In questa parte della guida vi mostriamo il primo modo. Il comando sarà simile a questo:

mysql_query($query);

Cambiando la variabile, il comando può essere ripetuto più volte nel codice sorgente.

Questo è il codice completo che dovrebbe essere utilizzato per creare una tabella MySQL in PHP:

<?php
$user=”username”;
$password=”password”;
$database=”database”;
mysql_connect(localhost,$user,$password);
@mysql_select_db($database) or die( “Unable to select database”);
$query=”CREATE TABLE tablename(id int(6) NOT NULL auto_increment,first varchar(15) NOT NULL,last varchar(15) NOT NULL,field1-name varchar(20) NOT NULL,field2-name varchar(20) NOT NULL,field3-name varchar(20) NOT NULL,field4-name varchar(30) NOT NULL,field5-name varchar(30) NOT NULL,PRIMARY KEY (id),UNIQUE id (id),KEY id_2 (id))”;
mysql_query($query);
mysql_close();
?>

Inseriamo il database MySQL, username e password di MySQL nelle posizioni corrette sulle prime tre righe.

La query seguente compila la tabella. Ecco un esempio:

$query = “INSERT INTO tablename VALUES
(”,’$field1-name’,’$field2-name’,’$field3-name’,’$field4-name’,’$field5-name’)”;

Non è possibile inserire più valori rispetto al numero di campi che avete creato con la prima query.

 

Connessione tra mySQL e PHP

Dopo aver creato una tabella ed inserito i dati, si dovrà visualizzarla, ciò può essere fatto utilizzando un codice HTML che richiama lo script PHP.

Inizieremo l’esempio dall’inizio:

Il seguente codice HTML raccoglie i dati dalle caselle di testo e li passa allo script PHP:

 <form action=”insert.php” method=”post”>
Value1: <input type=”text” name=”field1-name”><br>
Value2: <input type=”text” name=”field2-name”><br>
Value3: <input type=”text” name=”field3-name”><br>
Value4: <input type=”text” name=”field4-name”><br>
Value5: <input type=”text” name=”field5-name”><br>
<input type=”Submit”>
</form>

Ora vi serve un nuovo script PHP per inserire i dati nel database.

<?php
$username=”username”;
$password=”password”;
$database=”your_database”;

$field1-name=$_POST[‘Value1’];
$field2-name=$_POST[‘Value2’];
$field3-name=$_POST[‘Value3’];
$field4-name=$_POST[‘Value4’];
$field5-name=$_POST[‘Value5’];

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( “Unable to select database”);

$query = “INSERT INTO tablename VALUES
(”,’$field1-name’,’$field2-name’,’$field3-name’,’$field4-name’,’$field5-name’);
mysql_query($query);
mysql_close();
?>

Questo script deve essere salvato come insert.php in modo che possa essere chiamato dal modulo HTML.

Ora che avete almeno un record nel database, può essere utile sapere come utilizzare PHP con questi dati.

Il primo comando necessario sarà SELECT FROM MySQL:

 SELECT * FROM tablename

Si tratta di una query MySQL di base che dice allo script di selezionare tutti i record della tabella. Dopo l’esecuzione della query il risultato verrà assegnato ad una variabile:

$query=”SELECT * FROM tablename”;
$result=mysql_query($query);

L’intero contenuto della tabella è ora incluso in un array PHP. Prima dell’uscita, in questi dati è necessario cambiare ogni pezzo in una variabile indipendente. Ci sono due fasi.

La prima è il conteggio delle righe. Prima di poter passare attraverso i dati nella variabile è necessario conoscere il numero delle righe del database. Si potrebbe, digitare questo nel codice, ma non è una buona soluzione, siccome il codice dello script dovrà essere cambiato ogni volta che viene aggiunta una nuova riga. Invece è possibile utilizzare il comando:

$num=mysql_numrows($result);

Il valore di $num sarà il numero di righe memorizzato in $result. Questo sarà utilizzato in un ciclo per ottenere tutti i dati e visualizzarli sullo schermo.

La seconda fase è quella di creare il ciclo. Ci vorrà ogni riga del risultato e stampare i dati memorizzati. Nel codice riportato di seguito, $ i è il numero di volte che il ciclo viene eseguito. In questo modo tutti i record vengono visualizzati.

 $i=0;
while ($i < $num) {
CODE
$i++;
}

Si tratta di un ciclo di base di PHP ed eseguirà il codice corretto un numero di volte, o gni volta che $i sarà incrementato di uno.

La parte finale dello script è quella di assegnare a ciascuna porzione di dati la sua variabile:

 $variable=mysql_result($result,$i,”fieldname”);

Quindi, per prendere ogni singolo pezzo di dati nel nostro database potremmo utilizzare il seguente:

$field1-name=mysql_result($result,$i,”field1-name”);
$field2-name=mysql_result($result,$i,”field2-name”);
$field3-name=mysql_result($result,$i,”field3-name”);
$field4-name=mysql_result($result,$i,”field4-name”);
$field5-name=mysql_result($result,$i,”field5-name”);

Non è necessario ottenere il campo ID, perché non c’è per l’utilizzo nella pagina di output.

Ora è possibile scrivere uno script completo per l’output dei dati. In questo script i dati non sono formattati quando viene stampato:

<?php
$username=”username”;
$password=”password”;
$database=”your_database”;

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( “Unable to select database”);
$query=”SELECT * FROM tablename”;
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo “<b><center>Database Output</center></b><br><br>”;

$i=0;
while ($i < $num) {

$field1-name=mysql_result($result,$i,”field1-name”);
$field2-name=mysql_result($result,$i,”field2-name”);
$field3-name=mysql_result($result,$i,”field3-name”);
$field4-name=mysql_result($result,$i,”field4-name”);
$field5-name=mysql_result($result,$i,”field5-name”);

echo “<b>$field1-name
$field2-name2</b><br>$field3-name<br>$field4-name<br>$field5-name<hr><br>”;

$i++;
}

?>

Questo output elenca tutti i valori memorizzati nel database. Questo vi darà un output di base. Fare la formattazione non è complicato. Tutto quello che dovete fare è usare l’HTML per stampare il risultato, includendo le variabili negli spazi corretti. Il modo più semplice per farlo è chiudendo il tag PHP e HTML. Quando si raggiunge una posizione variabile:

<? echo $variablename; ?>

nella posizione corretta del codice.

È anche possibile utilizzare il ciclo di PHP per ripetere il codice appropriato e includerlo come parte di una tabella più grande. Il risultato finale è il seguente:

<html>
<body>
<?php
$username=”username”;
$password=”password”;
$database=”your_database”;

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( “Unable to select database”);
$query=”SELECT * FROM tablename”;
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();
?>
<table border=”0″ cellspacing=”2″ cellpadding=”2″>
<tr>
<th><font face=”Arial, Helvetica, sans-serif”>Value1</font></th>
<th><font face=”Arial, Helvetica, sans-serif”>Value2</font></th>
<th><font face=”Arial, Helvetica, sans-serif”>Value3</font></th>
<th><font face=”Arial, Helvetica, sans-serif”>Value4</font></th>
<th><font face=”Arial, Helvetica, sans-serif”>Value5</font></th>
</tr>

<?php
$i=0;
while ($i < $num) {

$f1=mysql_result($result,$i,”field1″);
$f2=mysql_result($result,$i,”field2″);
$f3=mysql_result($result,$i,”field3″);
$f4=mysql_result($result,$i,”field4″);
$f5=mysql_result($result,$i,”field5″);
?>

<tr>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f1; ?></font></td>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f2; ?></font></td>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f3; ?></font></td>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f4; ?></font></td>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f5; ?></font></td>
</tr>

<?php
$i++;
}
?>
</body>
</html>

 

Alla Prossima

 

Il file robots.txt è un semplice file di testo che contiene delle regole usate dagli Spider (Crawler) per applicare restrizioni sulle pagine di un sito web. I Web Crawler sono dei software programmati che effettuano ricerche sul Web e indicizzazioni per i motori di ricerca, quando analizzano un sito web controllano l’esistenza del file Robots.txt e se vi trovano delle regole o restrizioni le applicano.

Il file robots.txt viene inserito nella directory principale di un sito web ed è puramente consultivo, non tutti gli Spider applicano le regole inserite in esso.

 

Perché è un file robots.txt è importante?

Per evitare lo spreco di risorse del server, molti, se non la maggior parte dei siti web, hanno degli script che girano sul loro sito web che non hanno nessuna utilità pratica per un motore di ricerca, quando i robot dei motori  indicizzano il sito è possibile tramite il file robots.txt impedire agli spider l’indicizzazione di tali script, riducendo il carico sul server e eliminando le esecuzioni non necessarie.

 

Ridurre la larghezza di banda

Se guardate le statistiche del vostro sito web, troverete molte richieste per il Robots.txt da parte degli spider dei motori di ricerca. I motori di ricerca tentano di recuperare il robots.txt prima di indicizzare il sito web, per vedere se ha istruzioni per loro.

Se non si dispone di un file robots.txt, il server restituisce una pagina di errore 404 per il motore, questo causa l’utilizzo di molta banda a causa delle sue ripetute richieste per recuperare il file 404.

Qualche motore di ricerca indicizza anche i file grafici tipo .Gif, .Jpg e .Png, se si desidera bloccarli per risparmiare banda, lo si può fare usando il file robots.txt.

 

Come impostare un file robots.txt

Scrivere un file robots.txt è estremamente semplice. E’ solo un file di testo ASCII che si colloca alla radice del vostro dominio. Ad esempio, se il dominio è www.esempio.com, bisognerà inserire il file in www.esempio.com/robots.txt.

Per coloro che non sanno cosa sia un file di testo ASCII, è solo un file di testo che si crea con un editor di testo. Se utilizzate Windows, è già presente un editor di testo sul vostro sistema, chiamato Blocco note.

Il file Robots.txt elenca fondamentalmente i nomi degli Spider su una linea, seguito da un elenco di directory o file da non indicizzare.

Ogni riga del file contiene un record. Ogni record ha la seguente sintassi :

<campo> : <valore>

I campi disponibili sono :

User-Agent il valore di questo campo contiene il nome del robot che si deve attenere alle restrizioni. Con il carattere * la regola viene applicata a qualsiasi robot.

Disallow il valore di questo campo contiene le pagine del sito che devono essere escluse dai robot durante l’indicizzazione. Si può indicare un URL specifico o una serie di URL appartenenti ad un pattern. Per ogni User-Agent è possibile specificare una o più restrizioni tramite Disallow.

Il file robots.txt è case sensitive quindi se blocchiamo la pagina /PAGINA_DA_BLOCCARE sarà differente da bloccare la pagina /pagina_da_bloccare.

 

Esempio (1) file robots.txt

Per permettere l’accesso a tutto il sito web, non indicare nulla nella direttiva Disallow. Alcuni crawler supportano anche la direttiva Allow

User-agent: *
Disallow:

Per bloccare un intero sito, utilizza una barra.

User-agent: *
Disallow: /

Per bloccare una directory e il relativo contenuto, fai seguire il nome della directory da una barra.

User-agent: *
Disallow: /private_directory/

Per bloccare una pagina, indica tale pagina.

User-agent: *
Disallow: /private_file.html

Per segnalare il file Sitemap del sito.

Sitemap: http://www.esempio.com/sitemap.xml

 

Esempio (2) file robots.txt

User-agent: *
Disallow: /cgi-bin/

Le due righe sopra, inserite in un file robots.txt, informano tutti i robot che non sono autorizzati ad accedere nella directory e nelle sottodirectory di cgi-bin.

 

E’ possibile, bloccare i robot che indicizzano le immagini, tipo Google Image Search, inserendo le righe seguenti:

User-agent: Googlebot-Image
Disallow: /

Ciò significa che il robot di Google Image Search, non dovrebbe tentare di accedere a qualsiasi file nella directory radice / e in tutte le sue sottodirectory.

 

È possibile avere più linee Disallow per ogni user agent (cioè, per ogni spider). Ecco un esempio di file robots.txt più lungo:

User-agent: *
Disallow: /images/
Disallow: /cgi-bin/
User-agent: Googlebot-Image
Disallow: /

 

E’ possibile escludere l’indicizzazione di un determinato file. Per esempio, se non volete fare indicizzare l’immagine test.jpg, dovrete aggiungere le seguenti righe:

User-agent: Googlebot-Image
Disallow: /images/test.jpg

 

Senza restrizioni

Se si desidera che tutte le directory vengano indicizzate da tutti i motori di ricerca, basta un semplice file robots con le seguenti righe:

User-agent: *
Disallow:

 

Alla prossima.

 

 

active

Dominio registrato disponibile per qualsiasi operazione. Questo stato identifica i nomi a dominio attivi ed è attribuito di default a tutti i nomi a dominio al momento della registrazione.

autoRenewPeriod

Periodo di tempo di 15 (quindici) giorni immediatamente successivi alla scadenza del dominio.

bulk-transfer

Dominio per il quale è in corso un’operazione di Trasferimento Bulk.

cancelled-request

Dominio per cui il Registro ha ricevuto una LAR valida per cui il Registrante ha chiesto successivamente il suo annullamento. Il dominio è disponibile immediatamente per libera assegnazione.

challenged

Dominio registrato contestato da una terza parte, non disponibile per un’operazione di modifica del Registrante. Questo stato identifica tutti i nomi a dominio per cui è attiva una procedura di opposizione.

clientTransferProhibited

Vincolo imposto dal Registrar per impedire il trasferimento del nome a dominio ad altro Registrar. Il Registrar può porre il veto alla modifica del Registrar soltanto nel caso in cui abbia ricevuto, per tale nome a dominio, un provvedimento dalle autorità competenti, notificato nelle forme di legge.

clientUpdateProhibited

Vincolo imposto dal Registrar per impedire la modifica di un dominio. Unica operazione consentita, rimozione del suddetto vincolo. Il Registrar non può porre questo vincolo per impedire al Registrante la richiesta di modifica di un dominio, se non in presenza di valide motivazioni.

deleted

Dominio per cui il Registro ha completato una cancellazione, DNS inattivo. Il dominio è disponibile per libera assegnazione.

expired-request

Dominio per cui il Registro ha ricevuto una LAR valida, ma che non è stata completata entro i termini previsti da un modulo tecnico da parte del Maintainer. Il dominio è disponibile immediatamente per libera assegnazione.

geographic

Dominio facente parte della struttura geografica predefinita. Non assegnabile a terze parti.

grace-period

Dominio registrato. Questo stato evidenzia il “grace period” di 15 (quindici) giorni immediatamente successivi alla data di expire del dominio stesso inactive/clientHold Dominio per il quale il Registrar ha sospeso l’operatività e inibito qualsiasi operazione di modifica, a seguito dell’apertura di un provvedimento giudiziario sul dominio relativo all’uso e/o all’assegnazione dello stesso. Unica operazione consentita: rimozione del “clientHold” da parte del Registrar.

inactive/dnsHold

Dominio registrato ma non ancora attivo poiché in attesa di un controllo di configurazione del DNS con esito positivo. Questo stato è attribuito di default a tutti i nomi a dominio al momento della registrazione. Il dominio rimane in tale stato per un periodo massimo di 30 (trenta) giorni, dopodiché, se il controllo di configurazione del DNS ha ancora esito negativo, il dominio viene cancellato

inactive/noRegistrar

Nome a dominio per il quale il Registrar non ha più un contratto attivo con il Registro o per il quale un’operazione di “Modifica del Registrar” si è conclusa negativamente oltre il periodo di autoRenewPeriod. Il nome a dominio ha raggiunto la scadenza del campo expire e rimane in tale stato per 60 (sessanta) giorni. Uniche operazioni consentite: modifica del Registrar (eventualmente contestuale ad una modifica del Registrante) da parte del Registrante o recupero del nome a dominio dal parte del Registrar se quest’ultimo ha un contratto attivo con il Registro. Non delegato

inactive/notRenewed

Nome a dominio che ha raggiunto la scadenza del campo expire e che non è stato rinnovato automaticamente a causa del credito insufficiente del Registrar. I nomi a dominio in tale stato sono automaticamente recuperati non appena il credito del Registrar lo permette. Il nome a dominio rimane in tale stato per 30 (trenta) giorni. Uniche operazioni consentite: recupero automatico da parte del sistema non appena il credito del Registrar lo permette e modifica del Registrar (eventualmente contestuale ad una modifica del Registrante) da parte del Registrante.

inactive/revoked

Nome a dominio revocato dal Registro; lo stesso non è disponibile immediatamente per libera assegnazione.

inactive/serverHold

Dominio per il quale il Registro ha ravvisato la necessità di non permettere alcuna operazione, mantenendone inalterati i dati associati nel DBNA. Unica operazione consentita: rimozione del “serverHold” da parte del Registro.

inactive/toBeReassigned

Nome a dominio per il quale si è conclusa positivamente una procedura di riassegnazione o di opposizione. Il nome a dominio può essere registrato, entro 30 (trenta) giorni, soltanto a chi ha promosso l’opposizione.

no-provider

Dominio registrato. Operazioni consentite: recupero tramite modifica semplice da parte del Maintainer associato al dominio o tramite modifica del Maintainer e/o del Registrante. Sono altresì permesse le operazioni di cancellazione e revoca. Il dominio può rimanere in questo stato sino alla scadenza annuale del dominio (expire), decorsa la quale, in assenza di una delle suddette operazioni, passa nello stato di REDEMPTION-NO-PROVIDER.

ok

Dominio registrato, attivo e disponibile per qualsiasi operazione.

ok/noRegistrar

Nome a dominio per il quale il Registrar non ha più un contratto attivo con il Registro. Il nome a dominio rimane in tale stato sino alla scadenza del campo expire. Unica operazione consentita: modifica del Registrar (eventualmente contestuale ad una modifica del Registrante) da parte del Registrante.

pending-create

Dominio in registrazione. Questo stato identifica i nomi a dominio per cui il Registro ha ricevuto una LAR valida e corretta.

pending-delete

Dominio registrato; nessuna operazione consentita. Evidenzia il periodo antecedente la definitiva cancellazione del dominio (procedura random) dal DBNA del Registro che dovrà avvenire entro 5 (cinque) giorni

pendingDelete/redemptionPeriod

Dominio registrato per il quale il Registrar ha richiesto un’operazione di cancellazione per conto del Registrante. Unica operazione consentita, recupero da parte dello stesso Registrar entro 30 (trenta) giorni dalla data di passaggio in tale stato.

pendingTransfer

Dominio per il quale è in corso un’operazione di modifica del Registrar. Il “vecchio” Registrar può porre il veto alla modifica del Registrar soltanto nel caso in cui abbia ricevuto, per tale dominio, un provvedimento dalle autorità preposte, notificato nelle forme di legge. Il dominio rimane in tale stato per un periodo massimo di 5 (cinque) giorni. Se entro questo termine la modifica del Registrar non viene esplicitamente annullata dal nuovo Registrar o rigettata dal vecchio Registrar, essa è automaticamente approvata dal Registro.

pendingTransfer/Bulk

Dominio per il quale è in corso un’operazione di Trasferimento Bulk.

pendingUpdate

Dominio per il quale è stata richiesta una modifica dei nameserver autoritativi e in attesa di un controllo di configurazione del DNS con esito positivo. Il dominio rimane in tale stato per un periodo massimo di 5 (cinque) giorni. Se entro tale termine la nuova configurazione del DNS non viene validata dal Registro con esito positivo, essa viene abbandonata. Il dominio ritorna nello stato precedente.

redemption-no-provider

Dominio registrato. Operazioni consentite: recupero tramite modifica semplice da parte del Maintainer associato al dominio o tramite modifica del Maintainer. Il dominio può rimanere in questo stato per massimo 60 (sessanta) giorni dalla data di passaggio in tale stato. Se durante tale periodo non si verifica alcuna operazione di recupero, il dominio passa nello stato di PENDING-DELETE.

redemption-period

Dominio registrato. Unica operazione consentita: recupero tramite modifica semplice da parte del Maintainer associato al dominio, entro 30 (trenta) giorni dalla data di passaggio in tale stato. Se durante tale periodo non si verifica alcuna operazione di recupero, il dominio passa nello stato di PENDING-DELETE.

registrant-hold

Dominio registrato per il quale il Registrante ha chiesto al Registro di sospenderne la sua operatività mantenendo la titolarità dell’assegnazione.

registrant-transfer

Dominio registrato per il quale è in corso una procedura di modifica del Registrante.

registrar-hold

Dominio registrato per il quale il Maintainer ha chiesto al Registro di sospenderne la sua operatività a seguito dell’apertura di un provvedimento giudiziario per il dominio relativo all’uso e/o all’assegnazione dello stesso.

registrar-lock

Dominio registrato per il quale il Maintainer ha chiesto al Registro di inibire qualsiasi operazione di modifica del Maintainer e di modifica di qualsiasi dato presente nel DBNA ad esso associato a seguito dell’apertura di un provvedimento giudiziario per il dominio relativo all’uso e/o all’assegnazione dello stesso.

registrar-transfer

Dominio registrato per il quale è in corso una procedura di modifica del Maintainer.

registry-hold

Dominio registrato per il quale il Registro ha ravvisato la necessità di renderlo inattivo, mantenendone inalterati i dati associati nel DBNA e non consentendo su di esso alcuna operazione.

registry-lock

Dominio registrato per il quale il Registro ha ravvisato la necessità di mantenere inalterati i dati associati nel DBNA e non consentendo su di esso alcuna operazione

rejected-request

Dominio per cui il Registro ha ricevuto una LAR non valida. Il dominio è disponibile immediatamente per libera assegnazione.

reserved

Dominio non registrato, riservato a favore di un determinato Registrante.

revoked

Dominio per il quale il Registro ha provveduto a revocare il dominio e lo stesso non è disponibile immediatamente per libera assegnazione.

serverDeleteProhibited

Vincolo imposto dal Registro per impedire la cancellazione di un nome a dominio.

serverTransferProhibited

Vincolo imposto dal Registro per impedire per impedire il trasferimento del dominio ad altro Registrar.

serverUpdateProhibited

Vincolo imposto dal Registro per impedire la modifica di un nome a dominio.

thirdparty-hold

Dominio registrato per il quale il Registro ha ricevuto una richiesta di inibizione all’uso, da parte di un’autorità preposta e non consentendo su di esso alcuna operazione.

to-be-reassigned

Dominio per il quale si è conclusa positivamente una procedura di riassegnazione o di opposizione. Il dominio può essere registrato, entro 30 (trenta) giorni, soltanto a chi ha promosso l’opposizione. unassignable Nome a dominio non assegnabile ad alcun registrante.