Altan Tanrıverdi | Popüler, Yazılım | 5 yorum
Otomatik Subdomain Yaratma
Subdomain yaratma konusunda gelen taleplere cevaben hazırladığım kısa notları paylaşayım.
İlk olarak .htaccess ile çözüm: Bu tür çözümü yönlendirmeler için kullanıyoruz. Aslında yarattığımız bir subdomain bulunmuyor:
RewriteCond %{HTTP_HOST} ^([^\.]+)\.site\.net$ [NC]
RewriteCond %1 !^(www|ftp|mail)$ [NC]
RewriteRule ^.*$ http://www.site.net/profil.php?kullaniciadi=%1 [R,L]
Bu kod ile örneğin http://altan.site.com adresine gelecek talep, http://www.site.net/profil.php?kullaniciadi=altan adresine yönlendirilecektir. Böylece uzun ve şık durmayan urllerden kurtulmuş olacağız. Not: wildcard DNS host servisiniz tarafından aktif edilmiş olmalıdır. ^(www|ftp|mail) ifadeside yönlendirilmeyecek gerçek subdomainleri yazacağınız bölüm.
İkici yolumuz PHP. Sadece cPanel kullanılan sistemlerde çalışır. Bu kod ile hem subdomaini yaratıyor hemde public_html (veya www) klasörümüzde subdomain ile aynı ada sahip bir klasör yaratıyoruz. Subdomain de bu klasöre otomatik yönlendirilmiş oluyor.
$altalan_dizi = array('istanbul', 'ankara', 'izmir', 'adana', 'mersin');
// Url
$url = "site.com";
// cPanel Bilgileri
$kullanici_adi = 'kullanici';
$parola = 'parola';
$sablon = 'rvblue';
Türkçe cpaneller genelde rvblue’dür ancak ingilizce ise genellikle x veya x3 kullanılır. Tam olarak öğrenmek için cPanelinize giriniz ve urlde frontend/ ifadesinden sonra ne yazdığına bakınız. Koda devam edelim:
$talep = "/frontend/$sablon/subdomain/doadddomain.html?domain=$altalan&rootdomain=$url";
$sonuc = yarat($kullanici_adi,$parola,$talep);
echo $goster = strip_tags($sonuc);
}
Scriptlerinizde echo yaptırmayın. Çalışıp çalışmadığının kontrolü için eklendi. Koda devam edelim:
$soket = fsockopen('localhost',2082); if(!$soket) {
print('Soket hatası');
exit();
}
$yetki = "$xkullanici_adi:$xparola";
$sifre = base64_encode($yetki);
$basla = "GET $xtalep\r\n";
$basla .= "HTTP/1.0\r\n";
$basla .= "Host:localhost\r\n";
$basla .= "Authorization: Basic $sifre\r\n";
$basla .= "\r\n";
fputs($soket, $basla);
while (!feof($soket)) {
$xsonuc .= fgets ($soket,128);
}
fclose($soket);
return $xsonuc;
}
Herşey yolunda gittiyse aşağıdakine benzer bir çıktı almış olmalısınız:

Kontrol edelim:

Görüldüğü gibi altalanadları başarıyla yaratılmış durumda.
HATALAR ve ANLAMLARI:
Yukarıdakine benzer hata alıyorsanız; cPanel kullanıcı adınızı veya parolanızı yanlış girdiniz demektir.
Soket hatası
yukarıdakine benzer hata alıyorsanız; host adını veya port numarasını yanlış girdiniz demektir.
Yukarıdakine benzer hata alıyorsanız; host adını veya şablon adını (rvblue, x, x3) yanlış girmişsiniz demektir.


hocam benim de çok iyi bir projem var ama bu wildcard ayarları icin hosting sirketleri hosting kadar para istiyor..ücretsiz yapan bir yer tanıyormusunuz?
Göreceli büyük projelerde sunucu yönetiminin sizde olması gerekir. Paylaşımlı host ve/ya vps gibi sistemlerde wildcard dolayısıyla subdomain vs. kısıtlaması olabiliyor. Açıkcası dedicated/co-location harici bunun ücretsiz sunulacağını sanmıyorum.
Bu konuda hostbul.net gibi ortamlar yardımcı olabilir.
evet ama açıkcası ilk aylar bir hostta başlamayı düşünüyordum malumunuz fazla trafik olmuyor..tutması garanti degil vs
bir de sunucu kiralamayalım
bu arada bir arkadaşım hostgatoru onerdi sunucu icin öneriniz var mı?
Siteniz biraz popüler olmaya başladığında inode problemi yaşarsınız. Özel olarak bir yer tavsiye edemem ama herhangi bir hosting firmasını incelediğinizde “…. sucks” diye aramanız o firma hakkında olumsuz görüşlere ulaşmanızı sağlar.