Laravel Wildcard Sub Domain Rotaları

Bir proje için her üyenin profil sayfası kendi kullanıcı adına bağlı bir subdomain de olmasına ihtiyacım olduğundan araştırdım netleştiremediğim bir konu olsa da yapabildiğim kadarı ile Uğur hocamın tavsiyesi üzerine paylaşmak istedim :slight_smile:

  1. DNS üzerinde wildcard sub domain tanımlaması yapılmalı: *.alanadi.com şeklinde. Paylaşımlı hosting ve cpanel gibi bir arayüz kullananlar için oldukça basit, linux sunucu üzerinde is dnsmasq.conf dosyası düzenlenmesi gerekiyor sanırım.

  2. Wildcard subdomain için A kaydı oluşturulmalı: yine cpanel üzerinden oldukça basit şekilde ekleyebiliyorsunuz fakat burada dikkat edilmesi gereken bir konu var cpanel varsayılan olarak wildcard.alanadi.com isimli bir dizin açarak subdomain için kök dizini buraya tanımlıyor bu bizim işimizi görmüyor dolaysıyla ana projenin public dizinine yönlendirilmeli (public_html) gibi.

  3. Rotalandırma: Aşağıdaki şekilde rota tanımları yapıldığında sorunsuz çalışıyor.

Route::group([‘domain’ => ‘{brand}.alanadi.com’], function() {
Route::get(’/’, function($brand) {
return $brand;
});
Route::get(’/catalog/’, ‘Frontend@client’);
Route::get(’/catalog/category/{cat}’, ‘Frontend@clientCat’);
Route::get(’/catalog/product/{prod}’, ‘Frontend@clientProd’);
});

NOT: Anlamadığım nokta ise şu oldu Route::get(’/’, function($brand) {return $brand; }); rotası ana sayfanın kendisini döndürüyor. Bu şekilde çalıştıramadığım için /catalog şeklinde çözdüm. Hatam nedir söyleyebilecek arkadaşlar varsa çok sevinirim.

1 Beğeni

Son kısımda route sıralamasından kaynaklı olduğunu düşünüyorum. Subdomain group dosya içinde en üste alınırsa sorun çözülür. / route hem subdomainde hem domainde olduğu zaman önce kim yukarda ise o açılacaktır fakat subdomain yukarda olursa eğer subdomainden girilirse subdomain açılır, eğer subdomain değilse subdomain kısmına girmez aşağıdaki routedan devam eder.

3 Beğeni