PHP'nin $ _SERVER ['HTTP_HOST']) için bir alternatif var mı;

3 Cevap php

Ben sadece iki yerde PHP kullanan basit bir html sayfası var

<?php preg_replace('/(www\.)?([^.]*)\.(com|info)/', '${2}', $_SERVER['HTTP_HOST']); ?>
<?php echo $_SERVER['HTTP_HOST']); ?>

Sayfada birden çok etki yüklü, ve ben sadece diğer bazı statik içerik metin olarak ana bilgisayar adını görüntülemek istiyorsun

Ben tamamen PHP için ihtiyaç kaldırmak istiyorum, ama başka bir tam şişmiş derleyici veya yorumlayıcı ile repalce istemem. Ben javascript kullanarak önlemek istiyorum. Ben etki alanı adının ikinci düzeyini almak için bir regex yapmak mümkün olmadan yaşayabiliriz, ama yine de bu seçeneği istiyorum. Ben mod_php daha basit bir apache modülü üzerinden bunu yapmak için herhangi bir seçenek var mı?

Ben üzerinde çalışıyorum Bu web sitesinin ihtiyaçlarını minimalize mod_php yanlış bir şey gidecekseniz, ben sadece görüyorum.

3 Cevap

Ben mod_rewrite ve SSI hem de birleştirmek istiyorum. Mod_rewrite ile bir ortam değişkeni ayarlayın:

RewriteCond %{HTTP_HOST} ^(www\.)?([^.]*)\.(com|info)$
RewriteRule ^ - [L,E=HOST:%2]

Ve daha sonra SGK bu bilgilere erişmek:

<!--#echo var="HOST" -->

Ben bunu htaccess kullanmak ve böyle bir rewrite yapmak mümkün olabilir satın test havn't:

RewriteRule (.*) $1?httm_host=%{HTTP_HOST} [L]

Ben% {HTTP_HOST} değişken bir içinde yeniden kullanılabilir olduğundan emin bilmiyorum ama işe yarayabilir. Sen kontrol etmek için bir koşul kullanmak gerekebilir? URL.

Nasıl JavaScript hakkında? Sadece kolayca yapılabilir sitede iki küçük değişiklik gerekir. Yani açıkça statik HTML dosyaları hizmet edebilir. Ve etki almak için, kullanabilirsiniz:

var domain = window.location.hostname;

Alkış,

Edit: mod_rewrite kullanmak için: İki özdeş HTML dosyalarını kurmak zorunda kalacak, her doğru etki alanı ile. Sonra yoluyla onlara sunabilirsiniz

RewriteCond %{HTTP_HOST} .+\.com
RewriteRule index.html index.com.html [L]

RewriteCond %{HTTP_HOST} .+\.info
RewriteRule index.html index.info.html [L]