Son projelerimden birinde, aynı Laravel uygulamasında belirli bir alt alan yönlendirmesi ayarlamak zorunda kaldım. Bu benim için yeni bir şeydi çünkü çoğu projede sadece bir alanla çalışıyorum ve her şeye /ondan sonra erişiliyor . Sizinle nasıl çözdüğümü sizinle paylaşacağım.

Hazırsak başlayalım; 

İhtiyacım neydi

İlk olarak, bu proje için gereksinimlerimi inceleyelim. Müşterim alan adından admin.domain.com, pazarlama web sitesinden domain.comve API'sından yönetici portalına erişmek istedi api.domain.com. Gördüğünüz gibi Laravel'in varsayılanlarından farklı. Laravel varsayılan olarak url'deki API yollarını domain.com/apive alan adındaki diğer her şeyi gösterir domain.com/. İşte tam bu noktada büyük bir sorunla karşılaştım ve araştırmaya başladım. 

Bulduğum Çözümüm

Bildiğiniz üzere Laravel yönlendirme, alt alan yönlendirmesini ayarlamak için uygun bir yol sağlar, ancak en iyi şekilde yalnızca bir joker karakter yönlendirmesi olduğunda *.domain.comçalışır, bu işe yarar, ancak belirli bir alt alanın çalışması için bazı yapılandırma değişiklikleri de yapmam gerekiyordu. Aşağıda benim routesweb.phpdosyam.

Route::middleware('web')->domain(env(‘SITE_URL’))->group(function(){
…. all your marketing website routes go here
});
Route::middleware('web')->domain('admin.' .env('SITE_URL'))->group(function(){
….. all your admit portal routes to here
});
Route::middleware('api')->domain('api.’ .env('SITE_URL))->group(function(){ 
…. all your API routes go here
});

Gördüğünüz gibi, domainyakalamak istediğiniz alt etki alanından bahsetmek için yöntemi kullanabilirsiniz , ancak kullanmanız gereken farklı etki alanlarına sahip birden fazla ortamınız olduğunda karmaşık hale gelir, bu yüzden SITE_URLdeğişkeni dosyama ekledim .env. Yerel olarak geliştirdiğimde bunu ayarlayabilirim localhost, üretimde gerçek etki alanını ayarladım ve hazırlama veya test sırasında ilgili alanları ayarlayabilirim.

.env Yapılandırma : 

SITE_URL=domain.com

Bu sadece ayarladığınız başka bir .env değişkenidir.

Web sunucusu yapılandırması

Şimdi yönlendirmeyi yapılandırdınız, ancak aynı ana bilgisayar için birden çok etki alanı adı kullanabilmek için web sunucusu kurulumunda birkaç değişiklik yapmanız gerekir. Nasıl olduğunu görelim.
 

127.0.0.1 laravel.test
127.0.0.1 api.laravel.test
127.0.0.1 admin.laravel.test