"Enter"a basıp içeriğe geçin

PHP ile Sahte Subdomain Yapımı

php ile subdomain oluşturmak konusu çoğu proje geliştiricileri tarafından sorun haline gelmiştir. Normalde bir subdomain oluştururken sunucu üzerinde cPanel, Plesk vs. panellerde ilgili yere girip subdomain adını yazıp örneğin; test.siteadi.com oluşturma işlemi oluyordu fakat bir sosyal medya projesi geliştiriyorsanız veyahut blogspot gibi kullanıcıya özel bir sayfa oluşturmak istiyorsanız ilaç gibi gelecektir.

Localhost veyahut kendi linux sunucunuzda vs. bu işlemi kolaylıkla yapabilirsiniz.

Gerekli Dosyaların Oluşturulması

İlk olarak .htaccess ve profile.php diye iki adet dosya oluşturuyoruz. (profile.php yada herhangi bir ad verebilirsiniz.)

.htaccess Kod Yapılandırması

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www|webmail|ftp)\.siteadi\.com [NC]
RewriteCond %{HTTP_HOST} ^(.*?)\.siteadi\.com [NC]
RewriteRule ^$ profile.php?user=%1 [QSA,L]

Bu kod bloğunu açıklayacak olursam:

  • İlk satırda yönlendirme işlemimizi başlattık.
  • İkinci satırda ise bildiğiniz üzere bir linux sunucuda bir otomatik bir şekilde gelen www, webmail, ftp gibi subdomain vardır. Bunları bizim yönlendirmemize dahil etme dedik. Eğer destek.siteadi.com, blog.siteadi.com gibi subdomaini kontrol panellerinden oluşturduysanız ve bu yönlendirmeye dahil etmek istemiyorsanız “|” düz çizgi ile boşluk bırakmayarak “www|webmail|ftp|blog|destek” gibi çoğaltabilirsiniz.
  • Üçüncü satırda ise kendi http_host’umuzu yani domain olarak farzedebiliriz. Başına herhangi bir değer vereceğimizi belirttik.
  • Dördüncü satırda ise profile.php dosyasına yönlendireceğimizi ve üçüncü satırdaki değeri user değişkenine atacağımızı belirttik.

Bu sondaki “NC”, “QSA,L” ne anlama gelmektedir? 

[NC] : Büyük küçük harfe takılmaksızın yazılabilir anlamındadır.

[QSA,L] : Herhangi bir user  get parametresinden sonra bir veri gelecekse örneğin linkimiz şuna dönüştü emre.siteadi.com ben bunun sonuna bir çok get parametresi verebilirim yani şuna dönüşebilir; emre.akdas.siteadi.com peki bunu nasıl çevireceğim; (Çevirmeyecekseniz yukarıdaki gibi kullanabilirsiniz.)

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www|webmail|ftp)\.siteadi\.com [NC]
RewriteCond %{HTTP_HOST} ^(.*?)\.(.*?)\.siteadi\.com [NC]
RewriteRule ^$ index.php?user=%1&page=%2 [QSA,L]

Bu kod bloğunda ise üçüncü ve dördüncü satırları değiştirdik. Kısa bir anlatım yapacak olursam user parametresinde %1 birinci “(.*?)” değere denk gelmektedir. Page parametresinde ise %2 ikinci “(.*?)” değere denk gelmektedir. Yani bu kod bloğu şuna dönüşmekte: emre.akdas.siteadi.com

Bu değerleri profile.php içerisinde nasıl yakalayacağım?

Bu değerleri profile.php yada hangi ad verdiyseniz dosya içerisine; $_GET[‘user’] yada $_GET[‘page’] şeklinde yazdırıp veritabanından bilgileri vs. çekebilirsiniz.

Local sunucuda çalışıyorum siteadi.com yazanı nasıl localhost yapacağım?

Yukarıdaki kod bloklarındaki \.siteadi\.com şu kısmı sondaki \.com silerek ve siteadi yazan yeri localhost yaparak localde de çalıştırabilirsiniz.

 

PHP ile subdomain oluşturmak bu kadar basit aslında kafanıza takılan yada anlamadığınız yeri konu altındaki yorumlar kısmına bırakabilirsiniz ve diğer php çalışmalarını buradan ulaşabilirsiniz. İyi çalışmalar 🙂

Okuyucu Puanı
[Toplam: 2 Ortalama: 5]

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir