Programmazione Web » Php » Gestione dei domini di quarto livello
Gestione dei domini di quarto livello
Difficoltà:
Scritto da Nicolò Lucia
Sito Web: http://remotes.altervista.org ![]()
Questo tutorial è stato letto 806 volte
Molto spesso, sopratutto negli ultimi tempi, si ricorre al dominio di terzo livello (quello in cui generalmente c'è il WWW) per gestire diverse sezioni del proprio sito, ma che fare quando il sito è localizzato già su un dominio di terzo livello?
In alcuni casi è possibile ricorrere al dominio di quarto livello. Vediamo come.
Sicuramente l'alternativa migliore sarebbe sfruttare l'htaccess utilizzando il mod_rewrite ma questa alternativa non è sempre possibile. Ricordiamoci che i principali siti che utilizzano il dominio di terzo livello sono spazi web forniti da hoster che offrono gratuitamente un servizio minimo.
Se non è possibile utilizzare l'htaccess possiamo ricorrere ad uno stratagemma utilizzando PHP, vediamo come:
<?
function urlRedirect() {
//controlla che ci sia la variabile HTTP_HOST
if(isset($_SERVER['HTTP_HOST']))
{
$host = strtolower($_SERVER['HTTP_HOST']);
$serverip = $_SERVER['SERVER_ADDR'];
//se si accede al sito tramite l'ip del server lo riconosce
if ($host == $serverip) { index();
return;
}
if ($host == "localhost") { index();
return;
}
//genera la variabile contenente l'array dell'url
$array_url = explode(".",$host);
//calcola quanti elementi ci sono nell'array e li salva in una variabile
$num_dom = count($array_url);
//se nell'array ci sono solo tre elementi (quindi non è stato inserito alcun sottodominio) genera la home
if ($num_dom == "3") { index();
return; }
//variabile per l'estrazione dei domini
$num_par = $num_dom - 1 ;
//salva in una variabile la posizione del dominio di quarto livello nell'array
$ndominio = $num_par - 3 ;
//salva in una variabile il nome del dominio di quarto livello
$dominio = $array_url[$ndominio];
//salva in un array i domini di primo secondo e terzo livello e li unisce formando il dominio completo del sito
$nhost[1] = $num_par;
$nhost[2] = $num_par -1 ;
$nhost[3] = $num_par - 2 ;
$dhost = $array_url[$nhost[3]] . "." . $array_url[$nhost[2]] . "." . $array_url[$nhost[1]];
//verifica la presenza dei parametri di redirect
$rfile = "redirects/" . $dominio . ".link";
if (file_exists($rfile)) {
$rcontent = file($rfile);
if ($rcontent['0'] == "index") index();
else header ("location: $rcontent[0]");
}
else { //genera l'url
$url = "http://" . $dhost . "/domini/" . $dominio . "/";
$redfolder = "domini/" . $dominio . "/";
$baseurl = "http://" . $dhost . "/";
//fa il redirect
if (file_exists($redfolder)) header ("location: $url");
else header ("location: $baseurl"); }
}
else index();
}
function index() { include "home.php"; }
//lo stato del controllo (1 = on | 0 = off)
$url_control = "1";
//verifica se effettuare il controllo dell'url oppure se visualizzare la index
if ($url_control == "1") urlRedirect();
else index();
?>
Alla pagina successiva la spiegazione del codice.
Pagine: 1 | 2 |

