Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Laravel Alt Alan Adı Rotalarında Kök Alan Adı URL’leri Oluşturma: UrlGenerator’ı Kopyala
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Laravel Alt Alan Adı Rotalarında Kök Alan Adı URL’leri Oluşturma: UrlGenerator’ı Kopyala

Yazılım

Laravel Alt Alan Adı Rotalarında Kök Alan Adı URL’leri Oluşturma: UrlGenerator’ı Kopyala

teknomers
Son güncelleme: 21 Nisan 2026 23:27
teknomers
Paylaş
Paylaş

Bu makale, Laravel subdomain yönlendirmelerinde URL oluşturmanın pratik bir yolunu ele alıyor.


Sorun

Bir subdomain altında bir rota kaydedildiğinde:

Route::middleware([])->domain('foo.com')->group(function () {
            Route::get('/test', function () {
                return [
                    'current' => url('test'),  // returns https://foo.com/test
                ];
            });
        });
        

Bu bağlamda, hem url() hem de route() subdomain ile URL’ler üretir. Ancak, eğer ana siteye (app.url) bir URL ihtiyacınız varsa, bunun üstesinden gelmeniz gerekir.


Neden Doğrudan Değiştiremiyorsunuz?

app(UrlGenerator::class) kodu, konteynerden bir singleton döner. Bunun kökenini değiştirmek, istekteki tüm url() çağrılarını etkiler — middleware, cevaplar, her şey. Bu istenmeyen bir yan etkidir.


Çözüm: Clone ve useOrigin Kullan

Route::get('/test', function () {
            // Bir kopyasını klonla — orijinal singleton değiştirilmeden kalır
            $urlGenerator = clone app(UrlGenerator::class);

            // Klonun kökenini app.url (ana site) olarak ayarla
            $urlGenerator->useOrigin(config('app.url'));

            return [
                'origin'  => $urlGenerator->to(),  // https://localhost/test (ana site)
                'current' => url(),                 // https://foo.com/test (subdomain, değiştirilmeden)
            ];
        });
        

Çıktı:

{
          "origin":  "https://localhost/test",
          "current": "https://foo.com/test"
        }
        

clone, iki UrlGenerator örneğini bağımsız hale getirir. useOrigin() yalnızca klonlanmış kopyayı etkiler. Global url() yardımcıları tamamen etkilenmez.


Testte Doğrulama

Test yazarken doğrudan çıktıyı kontrol etmek için dump() kullanabilirsiniz:

it(, function () {
            Route::middleware([])->domain()->group(function () {
                Route::get(, function () {
                    $urlGenerator = clone app(UrlGenerator::class);
                    $urlGenerator->useOrigin(config());

                    return [
                        => $urlGenerator->to(),
                        => url(),
                    ];
                })->name();
            });

            $response = getJson();

            $response->assertJson([
                => ,
                => ,
            ]);
        });
        


Gerçek Dünya Kullanım Senaryoları

E-posta Gönderimi: Kullanıcı tenant.app.com üzerinde, ancak e-postadaki bağlantılar app.com adresine yönlendirilmelidir.

// Bir subdomain kontrolöründe
        public function sendWelcomeEmail(User $user): void
        {
            $urlGenerator = clone app(UrlGenerator::class);
            $urlGenerator->useOrigin(config());

            $loginUrl = $urlGenerator->route();  // https://app.com/login, subdomain yok

            Mail::to($user)->send(new WelcomeMail($loginUrl));
        }
        

API yanıtları ile kanonik bağlantılar: Çoklu kiracı mimarisinde, API yanıtlarında kanonik URL’ler veya yönlendirme bağlantıları ana siteyi işaret etmelidir, kiracının subdomainini değil.


useOrigin Ne Yapar?

useOrigin(), URL oluştururken kullanılan şemayı ve ana makineyi ayarlayan bir UrlGenerator yöntemidir. Route’un domain kısıtlamasını değiştirmez — yalnızca sonuçtaki URL dizesinin köken kısmını değiştirir.

// Etkisi içsel olarak buna benzer
        public function useOrigin(string $origin): static
        {
            [$this->forceScheme,$host] = explode(,$origin);
            $this->forceRootUrl($origin);
            return $this;
        }
        

clone, bu değişikliğin yalnızca o bir örnekte yaşamasını sağlar. Alan dışına çıktığında, değişiklik kaybolur. Global durum kirliliği yoktur.


Özet

Bir subdomain rotasında bir kök alan URL’sine ihtiyacınız olduğunda, clone app(UrlGenerator::class) ardından useOrigin() en temiz yaklaşımdır. Geçici yapılandırma değişiklikleri yok, URL::forceRootUrl() (bu global), manuel dize birleştirme yok.


Kaynaklar

Kaynak: Orijinal Makale

Contents
  • Sorun
  • Neden Doğrudan Değiştiremiyorsunuz?
  • Çözüm: Clone ve useOrigin Kullan
  • Testte Doğrulama
  • Gerçek Dünya Kullanım Senaryoları
  • useOrigin Ne Yapar?
  • Özet
  • Kaynaklar
Laravel’i VPS’ye GitHub Actions ile Dağıtma (Sıfır Downtime CI/CD)
Laravel Admin Panellerini Sıfırdan Yapmayı Bırakın — Lara Dashboard ile Tanışın
Laravel’de Carbon ile Jalali ve Hicri Tarihleri Yönetme (MultiCarbon)
Laravel API Çağrım Yanıtsız Kalıyor: 503 Korku Hikayesi
Tablodan Satır Silmeyi Tetiklemenin Dört Yolu
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Diablo 4’te Kin Lordu ile Sırt Sırta Çarpışma Deneyimi
Sonraki Makale Lenovo Legion 5i oyun laptopu: 32GB RAM, RTX 5070, 1,599$

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Prusa Research, INDX için tamamen spektrum çalışmalarına başladı
Donanım
82-0 En İyi Basketbol Oyunu, NBA 2K’ya Elveda!
Liste
Bungie, Marathon Deluxe Edition Sorununu Ücretsiz Oyunla Çözüyor
Oyun
Final Fantasy 7 Yenilikleri İlk Fragmanı ile Gözler Önünde
Oyun
Kabuto Park Yaz Tatilinin Geçiciliğini Yakalıyor
Liste
Velotric Nomad 2: Stabilite ve Performansla Off-Road Keyfi!
Genel
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?