Dinamik Sınırsız Subdomain Nasıl Ayarlanır ve Kullanılır?
Subdomain, bir ana etki alanının (domain) altında yer alan ve ana etki alanına bağlı bir alt etki alanıdır. Örneğin, "example.com" ana etki alanıysa, "blog.example.com" bir subdomain olur. Subdomain'ler genellikle ana web sitesine ek özellikler, hizmetler veya içerikler sunmak için kullanılır.
Subdomain'in Kullanım Alanları:
-
Farklı Bölümler: Bir web sitesinin farklı bölümlerini ayırmak için kullanılır. Örneğin, "shop.example.com" bir e-ticaret bölümü, "support.example.com" ise destek sayfası olabilir.
-
Uluslararasılaştırma: Farklı diller veya bölgeler için içerik sunmak için subdomain'ler kullanılabilir. Örneğin, "en.example.com" İngilizce içerik, "fr.example.com" Fransızca içerik sunabilir.
-
Geliştirme ve Test: Geliştirme, test veya aşamalı yayına geçiş için farklı subdomain'ler kullanılabilir, örneğin "dev.example.com" veya "staging.example.com".
-
SEO ve Marka Yönetimi: Arama motoru optimizasyonu (SEO) ve marka yönetimi açısından da subdomain'ler stratejik olarak kullanılabilir.
DNS ve Subdomain: Bir subdomain, DNS (Domain Name System) ayarlarıyla yapılandırılır. Her subdomain, ana etki alanının DNS ayarlarına bağlı olarak ayrı bir IP adresine yönlendirilebilir veya aynı sunucuyu kullanabilir.
Bu bilgiler ışığında, subdomain'ler bir web sitesinin organizasyonunu ve yapılandırmasını optimize etmek için oldukça faydalıdır.
Dinamik Subdomain
Dinamik subdomain, kullanıcıya özel veya dinamik olarak oluşturulan alt etki alanları anlamına gelir. Bu tür subdomain'ler genellikle web uygulamalarında, kullanıcıların veya müşterilerin özel olarak tanımlanmış içeriklerine veya hizmetlerine erişmelerini sağlamak amacıyla kullanılır.
Dinamik Subdomain'in Özellikleri ve Kullanım Alanları:
-
Kullanıcıya Özel İçerik:
- Dinamik subdomain'ler genellikle kullanıcı adlarına veya müşteri kimliklerine göre otomatik olarak oluşturulur. Örneğin, bir kullanıcı "john" adında bir hesap oluşturduğunda, ona özel "john.example.com" subdomain'i dinamik olarak yaratılabilir. Bu sayede kullanıcılar kendi özel alanlarına kolayca erişebilirler.
-
SaaS Uygulamaları:
- Yazılım hizmeti sunan (SaaS) platformlarda yaygın olarak kullanılır. Örneğin, bir proje yönetim uygulamasında her müşteri için dinamik olarak "companyname.example.com" şeklinde bir subdomain oluşturulabilir.
-
SEO Avantajı:
- Dinamik subdomain'ler, arama motorları tarafından ayrı birer site gibi indekslenebilir, bu da her bir subdomain'in kendine özgü SEO stratejisine sahip olabileceği anlamına gelir.
-
Gelişmiş Yönlendirme ve Yük Dengeleme:
- Dinamik subdomain'ler, kullanıcı trafiğini daha verimli bir şekilde yönetmek için kullanılabilir. Örneğin, farklı sunuculara veya veri merkezlerine yönlendirme yapmak için dinamik subdomain'ler kullanılabilir.
Dinamik Subdomain Nasıl Çalışır?
Dinamik subdomain'ler genellikle web sunucusu ve DNS yapılandırması ile birlikte çalışır. Bir istek geldiğinde, sunucu gelen subdomain'i analiz eder ve uygun içerik veya hizmeti sunar. Dinamik subdomain yapısında subdomain sunucunuza önceden tanımlamanıza gerek yoktur. DNS ve Sunucu yapılandırmanızı yaptıktan sonra gelen tüm istekler projenizin başlangıç dosyasına düşecektir. Bundan sonraki adım da projenize ve hayal gücünüze göre kullanıcıya subdomain e özel bilgiyi sunmak olacaktır. Örnek dinamik subdomainler musteri1.example.com, musteri2.example.com, musteri3.example.com, musteri...n.example.com
Dinamik subdomaini kullanabilmek için aşağıdaki teknikler kullanılabilir:
-
Wildcard DNS Kaydı:
- DNS'de bir wildcard kaydı (*).example.com yapılandırılır, böylece herhangi bir subdomain isteği sunucuya yönlendirilir.
-
Sunucu Yönlendirme Mantığı:
- Web sunucusu, gelen istekteki subdomain'i analiz eder ve bu subdomain'e karşılık gelen içerik veya sayfayı yükler. Bu, genellikle backend kodu veya bir yönlendirme mantığı (routing) ile gerçekleştirilir.
-
SSL Sertifikaları:
- Eğer HTTPS kullanılıyorsa, dinamik subdomain'ler için wildcard SSL sertifikaları veya Let's Encrypt gibi hizmetlerle otomatik olarak sertifikalar oluşturulabilir.
Özetle, dinamik subdomain'ler kullanıcıya özel deneyimler sunmak veya web uygulamalarında esnek ve ölçeklenebilir yapı kurmak için etkili bir yöntemdir.
Nasıl Uygulanır?
1. IIS'de URL Rewrite Modülünü Yükleme
Öncelikle, IIS'de URL Rewrite modülünün yüklü olduğundan emin olun. Yüklü değilse, Microsoft Web Platform Installer kullanarak yükleyebilirsiniz.
2. Web.config Dosyasını Düzenleme
İlgili sitenizin kök dizininde bir web.config
dosyası oluşturun veya mevcutsa düzenleyin. Aşağıdaki URL Rewrite kuralını web.config
dosyanıza ekleyin:
<configuration>
<system.webserver>
<rewrite>
<rules>
<rule name="Subdomain to Index">
<match url=".*">
<conditions>
<add input="{HTTP_HOST}" pattern="^(.*)\.yourdomain\.com$"></add>
</conditions>
<action type="Rewrite" url="/index.php"></action>
</match>
</rule>
</rules>
</rewrite>
</system.webserver>
</configuration>
pattern="^(.*)\.yourdomain\.com$"
kısmı, subdomain'i yakalar ve tüm subdomain isteklerini index.php
'ye yönlendirir. yourdomain.com
yerine kendi domain adınızı koymalısınız.
.*
ifadesi URL'nin herhangi bir bölümünü eşleştirir, bu da gelen tüm isteklerinindex.php
'ye yönlendirilmesini sağlar.Rewrite
türündekiaction
ile URL içeriği değiştirilmeden arka plandaindex.php
'ye yönlendirilir.
Dosyayı kaydedin ve IIS'yi yeniden başlatın. Artık tüm subdomain istekleri otomatik olarak index.php
sayfasına yönlendirilecektir.
3. IIS Üzerinde Wildcard Subdomain Yapılandırması
Cloudflare'dan gelen tüm wildcard subdomain'leri IIS üzerinde doğru şekilde yönlendirmek için IIS sunucusunda herhangi bir ek yapılandırma yapmanıza genellikle gerek yoktur. Ancak, tüm subdomain'leri dinamik olarak yönlendirmek için aşağıdaki adımları takip edebilirsiniz:
Site Binding Ayarları:
IIS'de, domain adınız için bir site ayarlayın ve bu siteye wildcard subdomain desteği ekleyin:
- IIS Manager'da, domaininiz için oluşturduğunuz siteye sağ tıklayın ve
Edit Bindings...
seçeneğine tıklayın. Add...
butonuna tıklayarak yeni bir binding ekleyin.- Hostname: kısmına
*.
example.com yazın. Kendi sitenize ait domain adına sınırsız subdomain açar. Bu, tüm subdomain'lerinizi kapsar.
4. Cloudflare'da DNS Yönlendirme Ayarı
-
Cloudflare Dashboard'a Giriş: Cloudflare hesabınıza giriş yapın ve yönlendirme yapmak istediğiniz domaini seçin.
-
DNS Ayarlarına Gitme: Sol menüden
DNS
sekmesine tıklayın. -
A Kaydı Oluşturma: IIS sunucunuzun IP adresini kullanarak bir A kaydı oluşturun.
- Name:
@
(Bu,yourdomain.com
için kök domain'i temsil eder) - IPv4 Address: IIS sunucunuzun IP adresi
- TTL: Auto
- Proxy Status: Proxied (Bu, Cloudflare'ın trafiği işleyip optimize etmesini sağlar)
Ek olarak, wildcard subdomain yönlendirmesi yapmak istiyorsanız:
- Name:
*
(Bu, tüm subdomain'leri kapsar) - IPv4 Address: IIS sunucunuzun IP adresi
- TTL: Auto
- Proxy Status: Proxied
- Name:
-
CNAME Kayıtları Oluşturma (Opsiyonel): Belirli subdomain'ler için yönlendirme yapmak istiyorsanız,
CNAME
kayıtları da ekleyebilirsiniz.- Name:
subdomain
(Yönlendirmek istediğiniz subdomain adı) - Target:
yourdomain.com
(ya da uygun başka bir domain) - Proxy Status: Proxied
- Name:
SSL/TLS Ayarlarını Yapılandırma
Cloudflare'ın trafiği IIS sunucunuza yönlendirirken SSL/TLS sertifikası kullanmasını sağlamak için doğru SSL/TLS ayarlarını yapmanız gerekir.
-
SSL/TLS Sekmesine Gitme: Cloudflare Dashboard'da
SSL/TLS
sekmesine tıklayın. -
SSL Modunu Seçme: Burada farklı SSL seçenekleri vardır. IIS sunucunuzda bir SSL sertifikası varsa
Full
veyaFull (Strict)
modunu seçebilirsiniz.- Flexible: Cloudflare, ziyaretçi ile kendi arasında SSL kullanır, ancak sunucunuza olan bağlantı HTTP olarak yapılır. (Tavsiye edilmez, çünkü sunucuya olan bağlantı şifrelenmez.)
- Full: Hem Cloudflare ile ziyaretçi arasında hem de Cloudflare ile sunucunuz arasında SSL kullanılır.
- Full (Strict): Aynı Full modu gibi, ancak sunucunuzdaki SSL sertifikasının geçerli ve güvenilir bir sertifika otoritesinden olması gerekir.
-
Always Use HTTPS: Bu seçeneği aktif hale getirirseniz, Cloudflare HTTP üzerinden gelen tüm istekleri otomatik olarak HTTPS'ye yönlendirir.
NGNIX Yapılandırması
Nginx üzerinde dinamik subdomain'leri tek bir PHP dosyasına (index.php
) yönlendirmek için Nginx yapılandırma dosyasında uygun bir yapılandırma yapmanız gerekecek. Bu yapılandırma, gelen tüm subdomain isteklerini index.php
dosyasına yönlendirecek ve subdomain bilgilerini $_SERVER
değişkenlerinde kullanılabilir hale getirecektir.
Adımlar:
- Server Block: Dinamik subdomain'leri yakalamak için bir server block oluşturun.
- Yönlendirme Ayarı: Tüm istekleri
index.php
dosyasına yönlendirin. - Subdomain Parametreleri: Subdomain bilgisini PHP’ye iletin.
Nginx Yapılandırması
Aşağıda, Nginx yapılandırma dosyasına ekleyebileceğiniz bir örnek bulunmaktadır. Bu örnek, tüm subdomain'leri index.php
dosyasına yönlendirecektir.
server {
listen 80;
server_name *.example.com;
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # PHP-FPM socket dosyası, PHP sürümünüze göre güncelleyin
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SUBDOMAIN $subdomain; # Subdomain bilgisini iletin
include fastcgi_params;
}
}
-
server_name *.example.com
: Bu yapılandırma,example.com
için tüm subdomain'leri yakalar. Örneğin,sub1.example.com
,sub2.example.com
gibi tüm subdomain'ler bu server block'a yönlendirilir. -
try_files $uri $uri/ /index.php?$args;
: Bu satır, gelen tüm istekleriindex.php
dosyasına yönlendirir. Eğer istek edilen dosya veya dizin bulunmazsa,index.php
dosyasına ve gelen parametrelerle birlikte yönlendirilir. -
fastcgi_param SUBDOMAIN $subdomain;
: Bu satır ile subdomain bilgisini PHP’ye$_SERVER['SUBDOMAIN']
olarak iletebilirsiniz. Bu bilgi,window.location.hostname
ile PHP'de işlenebilir. -
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
: Bu satır PHP-FPM’nin socket dosyasını belirtir. PHP sürümünüze ve konfigürasyonunuza göre güncellenmesi gerekebilir.
Subdomain Bilgisini PHP'de Kullanma
Subdomain bilgisini PHP'de şu şekilde alabilirsiniz:
$subdomain = $_SERVER['SUBDOMAIN'] ?? '';
echo "Subdomain: " . $subdomain;
Bu yapılandırma ile, tüm subdomain istekleri index.php dosyasına yönlendirilir ve subdomain bilgisi PHP tarafında işlenebilir hale gelir.
Aynı ayarları ile yapılandır ile ASP.NET ve ASP.NET Core için de kullanılabilir.
- Web Yazılım
Tepkini Göster
- 8
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
Yorumlar
Sende Yorumunu Ekle