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 Eloquent Uzman Geliştiricilerin Bilmesi Gereken İpuçları ve Hileler
Yoğun Trafikli Laravel Uygulaması Nasıl Oluşturulur (Pratik Rehber)
Laravel API Kimlik Doğrulaması: Riad Hasan’dan Pratik Bir Rehber
Creem.io için Laravel SDK Geliştirme: Çoklu Profil Faturalandırma, Webhook Olayları ve Etkileşimli Demo
Browsershot Alternatifi: PHP Ekran Görüntüsü Oluşturma için Yerine Geçen Bir Çözüm
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

Teknolojinin Gizliliği Kaybettiği Günlere Özlem Duyuluyor
Liste
Trump yönetimi OpenAI’de hisse alabilir mi?
Yapay Zeka
AMD B650 genişletme kartları $199’dan satışa sunuldu: 4 M.2 ve 11 USB portu ekleyin
Donanım
Path of Exile 2 Oynamayı Bırakanlar İçin Şok Gelişme
Oyun
4K Blu-ray’lerde Babalar Günü Öncesi Üç Tane 33 Dolar
Liste
Heyecan Verici Bir Yolculuk: God of War Laufey’in Yönetmeni Taraftarları Bekliyor
Oyun
//

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?