Tam o sırada, başka bir pillinetwork sitesi olan sinepil.org'da: "Lars and the Real Girl"

htaccess ile ilgili buradaki yazımdan sonra htaccess kullanarak kendinen alt alan adları oluşturmadan bahsedeceğim.

CPanel ve benzeri kontrol panelleri üzerinden elle (manual olarak) subdomainler oluşturabilmekteyiz. Fakat diyelim ki sitemizde bulunan her kullanıcı için bir subdomain vermek istiyoruz. O zaman kullanıcıları kuyruğa alıp sonra cpanel üzerinden elle alt alanadları oluşturmak bir hayli zahmetli ve anında etkileşimli olmayan bir iş.

Hi5.com ve benzeri sitelerde görüleceği üzere, üye olan her kullanıcı subdomain sahibi olabilmekte.

Şimdi otomatik subdomaini manual oluşturmaktan başka olarak iki şeyden bahsedeceğim.

1. .htaccess ile:
RewriteEngine On RewriteCond %{HTTP_HOST} ^([^\.]+)\.bildirgec\.org$ [NC] RewriteCond %1 !^(www|ftp|mail)$ [NC] RewriteRule ^.*$ http://www.bildirgec.org/uye.php?kullaniciadi=%1 [R,L]

Görüldüğü gibi www, ftp, mail haricinde tüm kullanıcı adları için subdomain oluşturulabilecektir. Yalnız işlem bu kadar basit olabileceği gibi bu kadar kolay da olmayabilir. DNS ayarları gerekebilir.

DNS ayarları: DNS Functions > Edit DNS Zone kısmında DNS: *.bildirgec.org (ya da sadece *) TTL: 14400 IN: IN Record Type: A (Kayıt Türü) şeklinde ayarlanır.

Bu ayar ile subdomain'lerin hostunuzun bulunduğu ip adresine düşmesi sağlanır. Ayrıca Host firmanızın DNS wildcard'ı aktifleştirmiş olması gerekmektedir.

Bu tüm subdomain'lerin hesabınıza yönlenmesini sağlayacaktır. Bu işlem de ServerAlias direktifleri ile httpd.conf ile yapılır.

httpd.conf ayarı: <VirtualHost 255.255.255.0> DocumentRoot /home/username/public_html ServerName www.bildirgec.org ServerAlias bildirgec.org ServerAlias *.bildirgec.org </VirtualHost>

2. PHP'de CPanel ile Etkileşerek: Siteniz PHP dilini destekliyorsa

<?php define(’CPANELKADI’,'cpanel_kullanici_adini_buraya_giriniz’); define(’CPANELPAROLA’,'cpanel_parolasini_buraya_giriniz’); define(’METIN_DOSYA’,'altalan.txt’); // istersek alt alan adlarını bir txt dende çekebilirsiniz define(’CPANEL_SABLON’,'rvblue’); // Türkçe cpaneller genelde rvblue dür ancak ingilizce ise genellikle x kullanılır. Tam olarak öğrenmek için cPanelinize giriniz ve urlde frontend/ ifadesinden sonra ne yazdığına bakınız. define(’DOMAIN’,’siteadresi.com’); function getVar($ad, $def = ”) { if (isset($_REQUEST[$ad]) && ($_REQUEST[$ad] != ”)) return $_REQUEST[$ad]; else return $def; } $cpanelkadi=getVar(’cpanelkadi’, CPANELKADI); $cpanelparola=getVar(’cpanelparola’, CPANELPAROLA); $cpanel_sablon = getVar(’cpanelsablon’, CPANEL_SABLON); if (isset($_REQUEST[”subdomain”])) { $doms = array( getVar(’domain’, DOMAIN) . “;” . $_REQUEST[”subdomain”]); if (getVar(’domain’, DOMAIN) == ”) die(”Geçersiz kullanıcı adı”); } else { $doms = @file(METIN_DOSYA); if (!$doms) { echo ” Metin dosyası bulunamadı. Lütfen bilgileri manuel giriniz.

<form method=’post’> Altalan (Subdomain):<input name=’subdomain’> Domain:<input name=’domain’><br> cPanel Kullanıcı Adı:<input name=’cpanelkadi’><br> cPanel Parola:<input name=’cpanelparola’><br> cPanel Şablon:<input name=’cpanelsablon’><br><br>Türkçe cpaneller genelde rvblue dür ancak ingilizce ise genellikle x kullanılır. Tam olarak öğrenmek için cPanelinize giriniz ve urlde frontend/ ifadesinden sonra ne yazdığına bakınız.<br><br> <input type=’submit’ value=’Yarat’ style=’border:1px solid black’> </form>”; die(); } } function subd($host,$port,$sahibi,$parolaci,$talep) { $sock = fsockopen(’localhost’,2082); if(!$sock) { print(’Socket error’); exit(); } $yetkilendir = “$sahibi:$parolaci”; $pass = base64_encode($yetkilendir); $in = “GET $talep\r\n”; $in .= “HTTP/1.0\r\n”; $in .= “Host:$host\r\n”; $in .= “Authorization: Basic $pass\r\n”; $in .= “\r\n”; fputs($sock, $in); while (!feof($sock)) { $sonuc .= fgets ($sock,128); } fclose( $sock ); return $sonuc; } foreach($doms as $dom) { $satirlar = explode(’;',$dom); if (count($satirlar) == 2) { $domain = trim($satirlar[0]); $subd = trim($satirlar[1]); } else { $domain = getVar(’domain’, DOMAIN); $subd = trim($satirlar[0]); } $talep = “/frontend/$cpanel_sablon/subdomain/doadddomain.html?rootdomain=$domain&domain=$subd”; $sonuc = subd(’localhost’,2082,$cpanelkadi,$cpanelparola,$talep); $goster = strip_tags($sonuc); //teknik bilgi. scriptlerinizde echo yaptırmayın. echo $goster; } ?>


kodu ile oluşturabilirsiniz. Bu şekilde subdomain oluşturulabiliyor fakat işlem bir hayli yavaş sürebiliyor.

Ben CPanel için PHP kodlarını denedim, DNS Zone'da *.domain.com ekleyerek subdomain'leri ip'ye düşürmeye başardım fakat httpd.conf'a erişimim olmadığı için ayarlamasını yapamadım. Fakat oluşan subdomainler için htaccess çalışmaktadır. Denemekte, kurcalamakta ve araştırmakta fayda var.

Bu konuyla ilgili olarak Altan Tanrıverdi'nin yazısı okunmalıdır. Yazıda geçen kodlar bu sitede yer almaktadır. DNS ile ve httpd.conf için de buraya bakabilirsiniz.
 | 9 yorum var 
 | 17 Temmuz 2008 14:04 

Yorumlar

Yazı hazırlanırken enter'lar tam olarak algılanmamakta olduğundan yazı biraz karışık görünmekte ama dikkatli okuyunca neyin ne olduğu anlaşılıyor.

Redingot  |  (0 puan) 17 Temmuz 2008 18:37

wildcard izinleri pek çok hosting tarafından verilmediği için zamanında vazgeçtiğim hede. acaba htconf editlemek ya da htaccess ile kütüklere bu kayıtları girmek mümkün mü onu merak ediyorum. ama hiç sanmıyorum.

cpanelle etkileşmek ise mantıklı gelmiyor. yedeklemelerde sorunlar çıkabilir. hem zaten yavaş verimsiz bişey.

zee  |  (0 puan) 17 Temmuz 2008 19:49

bu olayı en verimli kullanan sitelerden biri mailinator.com

takip  |  (0 puan) 17 Temmuz 2008 20:59

neredeyse ilk kez ilgilendiğim bir konu hakkında yazı gördüm... bu "bildiri post" etme sistemine birde mümkünse "code" eklemek için bir snipet bişi olsada yazılan codelar < code > tag'i içinde çıksa adam gibi görebilsek...

-[ ::: trespass bbs | connect 2400 | usr 14400 dual standart ::: ]-
retrohacker  |  (0 puan) 18 Temmuz 2008 00:49

bence pilli kod işleri için bi site açsın işte. daha iyi.

zee  |  (0 puan) 18 Temmuz 2008 01:25

her şeyi pili'den beklememek lazım :-)

Kaza yerine ulaştınız, ilk ne yapmalısınız?Peki bununla beraber ilkyardımla nasıl hayat kurtarabileceğinizi biliyor musunuz?
guldemgokalp  |  (0 puan) 18 Temmuz 2008 02:26

yazının alıntı yaptığı javam.org sitesini öğrenmiş oldum.. gayeet faideli bir kaynakmış.. karman çorman çıkan bildiri için değil ama yeni bi kaynak için teşekkürler..

supermeg  |  (0 puan) 18 Temmuz 2008 10:20

Kodları göremeyen arkadaşlar, Firefox'da kodları seçip sağ tıkla "seçimin kaynak kodunu göster" desinler. Oradan kod olarak görebilirsiniz.

takip  |  (0 puan) 19 Temmuz 2008 22:16

yukarıdaki .htaccess için olan kodlarda,
örneğin http://sub.siteismi.com adresini yazınca http://www.siteismi.com/index.php?kullaniciadi=ayse adresine yöneliyor ve adres bar da bu adres yazıyor.

bildirgec gibi adres barın değişmemesini nasıl sağlayabiliriz. yani adres barda http://sub.siteismi.com yazmaya devam etsin .

998877  |  (0 puan) 02 Mart 2009 09:21

üye olunpillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.

Bu yazıyı rapor et. Kural dışı içeriğe rastladığınızda editörlerimize rapor ederek müdahale edilmesini sağlayabilirsiniz. (Hangi durumlarda rapor edebilirim?)
bildirgec.org bölümleri
pillinetwork hesabınızla giriş yapın.

pilli ilan

son yorumlar

pilli ilan

bildirgecinfo

bildirgec.org içeriği kullanıcıları tarafından üretilen kolektif bir blogdur.

network siteleri

RSS Dosyası
pillikutu