Gestione domini di 4° livello
Scritto da Nicolò Lucia
(http://www.remotes.it)
il 27 agosto 2007
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:
PHP
<?php
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();
?>
