PHP HTTP_HOST subdomain ekstraksiyon bir alt bir joker olabilir ve birden fazla içerdiğini verilmiştir. '

0 Cevap php

Ben HTTP_HOST değerinden subdomain ayıklamak çalışıyorum. Ancak ben alt etki alanı içinde birden fazla nokta var eğer düzgün maç için başarısız bir sorun haline tökezledi. Bu çok farklı etki üzerinde çalıştırmak için bir komut dosyasıdır ve nokta sınırsız miktarda olabilir ve Tld 1 veya 2 parça (ve herhangi bir uzunluk) da olabilir göz önüne alındığında - doğru subdomain, etki eşleşen pratik bir yolu var ve tüm durumlarda tld?

Yani, örneğin, aşağıdaki HTTP_HOST değerleri alır ve hangi uyumlu olması gerekmektedir.

  • www.buggedcom.co.uk
    • Subdomain: www
    • Domain: buggedcom.co.uk
    • TLD: co.uk
  • www.buggedcom.com
    • Subdomain: www
    • Domain: buggedcom.com
    • TLD: com
  • test.buggedcom.co.uk
    • Subdomain: test
    • Domain: buggedcom.co.uk
    • TLD: co.uk
  • test.buggedcom.com
    • Subdomain: test
    • Domain: buggedcom.com
    • TLD: com
  • multi.sub.test.buggedcom.co.uk
    • Subdomain: multi.sub.test
    • Domain: buggedcom.co.uk
    • TLD: co.uk
  • multi.sub.test.buggedcom.com
    • Subdomain: multi.sub.test
    • Domain: buggedcom.com
    • TLD: com

Bunu gerçekleştirmek için tek yol bu senaryonun başında olduğunu ve gerçekten böyle ağır kaldırma gerektiren gerektiği gibi gerçekten yapmak istemiyorum mümkünse izin TLD'lerin bir listesini yüklemek olacağını varsayarsak ediyorum.

Aşağıda, mevcut kodudur.

define('HOST', isset($_SERVER['HTTP_HOST']) === true ? $_SERVER['HTTP_HOST'] : (isset($_SERVER['SERVER_ADDR']) === true ? $_SERVER['SERVER_ADDR'] : $_SERVER['SERVER_NAME']));
$domain_parts = explode('.', HOST); 
$domain_parts_count = count($domain_parts);
if($domain_parts_count > 1)
{   
    $sub_parts = array_splice($domain_parts, 0, $domain_parts_count-3);
    define('SUBDOMAIN', implode('.', $sub_parts));
    unset($sub_parts);
}
else
{
    define('SUBDOMAIN', '');
}
define('DOMAIN', implode('.', $domain_parts));
var_dump($domain_parts, SUBDOMAIN, DOMAIN);exit;

Sadece düşünce olsun param olarak subdomain eklemek mod_rewrite olabilir?

0 Cevap