Nasıl PHP kullanarak alt etki alanlarını oluşturabilirim?

3 Cevap apache

Ben doğrudan php gelen anında alt etki alanları oluşturmak için ilgileniyorum. Bir kullanıcı yeni bir sayfa oluşturmak Örneğin ben bu sayfa newpage.mydomain.com olmak istiyorum. Olması mümkün (ben bir hosting hesabı kullanıyorum varsayarak) php veya apache yapılandırma dosyaları değiştirmeden.

Daha sonra Edit: benim etki bahsediyorum, ve ben etki alanı yönetim alanına tam erişim var.

3 Cevap

  1. Belki redirection.php adlı bir dosyaya her 404 yönlendirir senin. Htaccess dosyasında bir hata belgeyi yukarı ayarlayın. Bu. Php dosyası "fly" yönlendirmeleri idare edecek budur.

  2. [Whateverhere] böylece. Yourdomain.com noktaları sunucunuzun IP, sizin bölge dosyalarında bir joker DNS kaydı ekle

  3. Add a wildcard serveralias in your apache configs by using: ServerAlias *.yourdomain.com

  4. Lütfen redirection.php dosyasında aşağıdaki kodu yazın.

.

<?php

$url = $_SERVER["REQUEST_URL"];
$newurl=str_replace(".yourdomain.com","",$url);
$newcomplete="http://yourdomain.com/".$newurl;
Header("Location: ".$newcomplete);

?>

Bu biraz yardımcı olur mu?

Yes you can do this. You need to make sure that first you set up a wildcard * A record against your domain in your domain register DN panel.

Eğer joker kurduktan sonra, sadece> bakabilirsiniz

 $_SERVER["SERVER_NAME"]

it's not possible through php alone. and I don't think shared hosting allow that. anyway, for that you have to own a domain (or have permission to edit DNS record) then you can add wildcard record to allow any subdomain to point to a single machine (identified by its IP adress)

düzenlemek (Powerlord yorumun)

apache have to redirect each subdomain to the same vhost usually with ServerAlias *.example.com in a vhost configuration

/ Düzenle

sonra php sayfayı alt alana ayrıştırma tarafından talep olduğunu kontrol edebilirsiniz (yarılma) $_SERVER['HOST_NAME']

örneğin:

$host = explode ('.', $_SERVER['HOST_NAME']);
array_pop ($host);
array_pop ($host);
$subdomain = join ('.', $host);