È possibile utilizzare $_SERVER['HTTP_HOST']
per ottenere il vostro dominio. Ora, se il tuo sito non utilizza sottodomini è facile. Basta usare qualcosa di simile:
$url1 = "www.domain.com";
$params = explode('.', $url1);
if(sizeof($params === 3) AND $params[0] == 'www') {
// www exists
}
Nota che se l'array params ha 2 voci, poi dominio assomiglia a questo domain.com
e non c'è www
chiaramente. È anche possibile controllare la dimensione dell'array $params
e decidere se c'è www
o meno in base alle sue dimensioni.
Ora se il tuo sito utilizza sottodomini, diventa più complicato. Avreste questi come possibili scenari:
$url1 = "www.domain.com";
$url2 = "www.sub.domain.com";
$url3 = "domain.com";
$url4 = "sub.domain.com";
allora si sarebbe di nuovo esplodere ogni url, e confrontare dimensioni e controllare se prima voce è 'www'. Tuttavia, il dominio secondario potrebbe essere denominato www
dove il dominio www
sarebbe il sottodominio: D E quindi sarebbe simile a questo: www.domain.com
, e ancora, www
è sottodominio :) Questo è pazzesco Sono quasi impazzito con questo :)
In ogni caso, per verificare la presenza di www
quando il sito non utilizza i domini secondari, è il massimo. Ma per verificare se url ha www
e il tuo sito utilizza sottodomini, potrebbe essere difficile. La soluzione più semplice per risolvere questo problema sarebbe disabilitare il dominio secondario www
, se possibile.
Se hai bisogno di più aiuto e questo non risponde alla tua domanda, non esitare a chiedere. Avevo una situazione simile in cui gli utenti sarebbero stati in grado di creare i propri account che sarebbero sottodomini, come www.user.domain.com
, e ho dovuto fare la stessa cosa.
Spero che questo aiuti!
tenere a mente se si utilizza uno dei metodi indicati controllare per assicurarsi $ _SERVER [ 'HTTP_HOST'] esiste prima di fare qualsiasi cosa. if (isset ($ _ SERVER ['HTTP_HOST'])) Non tutti gli ambienti di hosting popoleranno quella variabile. Ho incontrato alcuni che non lo fanno. È consigliabile utilizzare sia HTTP_HOST sia SERVER_NAME per assicurarti di poter controllare un dominio. –
@cryptic è sempre presente SERVER_NAME? –
http://stackoverflow.com/questions/2297403/http-host-vs-server-name darà alcune buone informazioni su entrambi. Se il SERVER_NAME non è impostato su Apache, verrà eseguito un inversione della direzione sull'IP. Se il tuo dominio ha un IP dedicato, dovrebbe risolvere il problema per correggere il dominio, ma se si tratta di un IP condiviso, si corre il rischio che il dominio venga restituito come un dominio diverso. –