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
Ekran Görüntüsü Tabanlı Vibe Kodlama: Yapay Zeka İş Akışınızın Neden Bir Sözlük Aşamasına İhtiyacı Var
2026’da Laravel’de API Anahtarlarını Güvenli Bir Şekilde Saklama ve Kullanma Yöntemleri
Laravel’i VPS’ye GitHub Actions ile Dağıtma (Kesintisiz CI/CD)
Kodlama Asistanlarının Evrimi: Otomatik Tamamlamadan Laravel Geliştiricileri için Akıllı Yapay Zeka’ya
Geliştirici Olarak Benim İçin Büyük Bir Dönüm Noktası!
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

Kabuto Park Yaz Tatilinin Geçiciliğini Yakalıyor
Liste
Velotric Nomad 2: Stabilite ve Performansla Off-Road Keyfi!
Genel
Gigabyte Z890 Aorus Elite Wifi7 Plus Anakart İncelemesi: Uygun Fiyatlı Yenilikler
Donanım
Apple’ın Yeni Siri’si Yeniden Aramızda
Liste
2026’nın En İyi 2 Bluetooth Takip Cihazı ve Öne Çıkanlar
Genel
G.Skill, AMD EXPO ULL ile performans artışını nasıl sağlıyor?
Donanım
//

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?