Orbit
Yönlendirmeleri ve Yeniden Yazmaları Yapılandırma
Orbit has a built-in redirect and rewrite engine that runs before your project is asked for anything, configured either in KPanel or as a file in your repository. This guide covers both, the pattern…
Orbit, yeniden yönlendirme ve yeniden yazma işlemini gerçekleştiren yerleşik bir motora sahiptir ve bu işlem, KPanel'de veya depo dosyasında yapılandırılan şekilde yapılır. Bu kılavuz her iki yöntemi, örüntü söz dizimini ve yakalamalarını, kuralların sıralanmasını, sınırları ve insanları yakalayan davranışı kapsar.
Kuralları Nereye Yapılandıracağınız
İki yer vardır ve bunlar sabit bir sırada değerlendirilir.
- KPanel'de. Projenizi Orbit'te açın, Ayarlar'a gidin ve ortam için yeniden yönlendirmeler ve yeniden yazma bölümüne gidin. Her ortamın kendi bağımsız kural kümesi vardır, bu nedenle üretim ve hazırlama ayrı ayrı yapılandırılır.
- Deponuzda, bir
kaps.jsondosyası olarak. Bu, aşağıda ele alınmıştır.
Panel kuralları önce değerlendirilir. Hiçbiri eşleşmezse, kaps.json kuralları denenir.

KPanel'de Kural Ekleme
- Kural ekle'ye tıklayın.
- Kaynağı doldurun, gelen istekleri eşleştirmek için yol örüntüsü. Yer tutucu beklediği iki şekli gösterir:
/old-path or /blog/:slug. - Hedefi doldurun. Yer tutucu
/new-path or https://...'yi gösterir, bu nedenle hem yerel bir yol hem de tam bir harici URL geçerlidir. - Kural türünü seçin:
- 301 Kalıcı: URL kalıcı olarak taşındı. Tarayıcılar ve arama motorları bunu önbelleğe alır.
- 302 Geçici: şimdilik taşındı, önbelleğe alınmaz. Kampanyalar ve deneyler için kullanın.
- Yeniden yazma: tarayıcının adres çubuğundaki URL'yi değiştirmeden hedef yolunu sunun.
- Kuralları kaydet'e tıklayın.
Kurallar sonraki dağıtımdan itibaren yürürlüğe girer, hemen değil. Bir kural kaydetmek şu anda canlı olan dağıtımın sunduğunu değiştirmez. Kaydettikten sonra yeniden dağıtın, aksi takdirde kurallarınız çalışmıyor gibi görünecektir.
301, tarayıcılar tarafından, bazen çok uzun bir süre boyunca önbelleğe alınır ve sunucudan temizlemek için hiçbir şey yapamazsınız. Bir taşınmanın kalıcı olduğundan emin değilseniz, önce 302 kullanın ve emin olduktan sonra 301'e geçin. Bunu yüksek trafikli bir yolda yanlış yapmak, gerçekten geri dönmesi zor.
Kaynak Yolu Örüntüleri
| Örüntü | Eşleşen | Yakalanan |
|---|---|---|
/old-page | Tam olarak /old-page | Hiçbir şey |
/blog/* | /blog/ ile başlayan herhangi bir şey | Yolun geri kalanı, hedefte * olarak başvurulur |
/posts/:id | /posts/ artı bir yol segmenti | Bu segment, :id olarak |
/files/:rest* | /files/ artı bundan sonra her şey, eğik çizgiler dahil | Tüm kalan, :rest olarak |
:id ve :rest* arasındaki fark önemli olandır. Adlandırılmış bir parametre tek bir segmenti eşleştirir ve sonraki eğik çizgide durur. Bir joker kalan her şeyi, eğik çizgiler dahil eşleştirir.
Yakalamalarını Hedefte Kullanma
Adlandırılmış bir parametreyi ada göre ve basit bir joker karakterini * olarak başvurun:
| Kaynak | Hedef | Sonuç |
|---|---|---|
/blog/:slug | /articles/:slug | /blog/hello-world, /articles/hello-world olur |
/docs/:rest* | /help/:rest* | /docs/a/b/c, /help/a/b/c olur |
/old/* | /new/* | /old/a/b, /new/a/b olur |
Kural Sırası
Kurallar listenin en üstünden aşağıya doğru test edilir ve ilk eşleşme kazanır. Bir kural eşleştiğinde, sonraki hiçbir kural dikkate alınmaz. Panel, liste altında söyler: "Kurallar sırasında test edilir. İlk eşleşme kazanır."
Belirli kuralları genel kuralların üzerine koyun. /blog/* kuralı /blog/2023/:slug'nın üzerine yerleştirilirse, daha spesifik kuralın yönetmek için tasarlandığı tüm istekleri yutacak ve spesifik kuralın basitçe bozuk görünmesi gibi görünecektir.
Hiçbir kural eşleşmezse, istek normal olarak sunulur.
Yaygın Kullanım Durumları
Sayfayı Yeniden Adlandırma
/about-us'yi /about'ye yeniden adlandırdınız ve eski bağlantıların çalışmaya devam etmesini istiyorsunuz.
- Kaynak:
/about-us - Hedef:
/about - Tür: 301 Kalıcı
Bütün Bir Bölümü Taşıma
Blogunuz /news/:slug'dan /blog/:slug'ye taşındı.
- Kaynak:
/news/:slug - Hedef:
/blog/:slug - Tür: 301 Kalıcı
API Yolunu Sessizce Proxy Etme
/api/v1/*'nin, değişikliği ortaya çıkarmadan farklı bir iç yoldan sunulmasını istiyorsunuz.
- Kaynak:
/api/v1/:path* - Hedef:
/api/internal/:path* - Tür: Yeniden yazma
Geçici Bir Tutucu Sayfası
- Kaynak:
/checkout - Hedef:
/maintenance - Tür: 302 Geçici
Trafiği Başka Bir Alan Adına Göndermek
Hedef, mutlak bir URL olabilir, bu nedenle bir kural tamamen farklı bir siteye işaret edebilir.
- Kaynak:
/shop/:rest* - Hedef:
https://shop.example.com/:rest* - Tür: 301 Kalıcı
kaps.json ile Kod Olarak Yapılandırma
Kurallar, panel yerine deponuzda bulunabilir. Bir kaps.json dosyası ekleyin ve derlemenizin bunu çıktı dizinine kopyaladığından emin olun, çünkü Orbit bunu depo kökünden değil, oluşturulan yapının kökünden okur.
{
"redirects": [
{ "source": "/about-us", "destination": "/about", "permanent": true },
{ "source": "/news/:slug", "destination": "/blog/:slug", "permanent": true },
{ "source": "/promo", "destination": "/spring-sale", "permanent": false }
],
"rewrites": [
{ "source": "/api/v1/:path*", "destination": "/api/internal/:path*" }
],
"headers": [
{
"source": "/*",
"headers": [
{ "key": "X-Frame-Options", "value": "DENY" },
{ "key": "X-Content-Type-Options", "value": "nosniff" }
]
}
]
}
permanent: true 301 üretir ve permanent: false 302 üretir. Atlama 301 verir.
kaps.json, yalnızca statik dağıtımlar için geçerlidir. Sunucu modu açıksa, uygulamanız kendi yönlendirmesini yönetir ve dosya göz ardı edilir. Ayrıca yalnızca ortamın panel kuralları eşleşmek için başarısız olduktan sonra değerlendirilir, bu nedenle panel kuralı, aynı yol için dosya kuralını her zaman yener.
Kurallar kod ile ilgili olduğunda kaps.json kullanın, böylece bir çekme isteğinde gözden geçirilir ve bir geri alma ile hareket eder. İhtiyaç duyduğunuzda panel kullanın; kuralı şimdi canlı gerekmez. Aynı kuralı her iki yerde de korumayın: panel kuralı her zaman kazanacak ve dosya kuralı göz ardı ediliyormuş gibi görünecektir, bu da haliyle öyledir.
Sınırlar
- Ortam başına 100 yeniden yönlendirme ve yeniden yazma kuralları ve bir
kaps.json'de 100. - Ortam başına 200 özel başlık kuralları.
Sınırın ötesindeki kurallar sessizce düşürülür, bir hata oluşturmaz, bu nedenle bunun çok altında kalın.
Özel Yanıt Başlıkları
Yeniden yönlendirmelerin yanında, her ortamın Ayarlar'da eşleşen yollar üzerinde HTTP başlıkları enjekte etmek için bir yanıt başlıkları bölümü vardır. Aynı yol örüntüsü söz dizimini kullanır ve HSTS, CSP, no-embed, no-sniff, referrer politikası ve CORS için hızlı ekleme ön ayarları vardır.
Yeniden yönlendirmelerin aksine, tüm eşleşen başlık kuralları uygulanır, yalnızca ilki değil ve sonraki bir kural aynı başlığı ayarladığında önceki birinin üzerine yazar. Content-Length, Transfer-Encoding ve Connection engellenmiştir, çünkü bunları ayarlamak yanıtı bozacaktır.
Buna Güvenmeden Önce Bilmek Değer Davranış
Sorgu dizeleri yeniden yönlendirme sırasında taşınmaz. Bir kural, isteğin bir sorgu dizesi olup olmaması fark etmeksizin eşleşir, ancak hedef şablonunuzdan ve yakalanan yol segmentlerinden oluşturulur. /old?utm_source=email'ye gelen bir istek, parametreler düşürülerek /new'ye yeniden yönlendirilir. İzleme parametrelerinin hayatta kaldığına bağlıysanız, hedef URL'yi tamamen kontrol ettiğiniz bir kenar işlevinde yeniden yönlendirmeyi yönetin.
- Kurallar yalnızca yolla eşleşir. Parçalar (
#section) hiçbir zaman sunucuya ulaşmaz; tarayıcı yeniden yönlendirmeden sonra bunları yeniden iliştirir. - Var olmayan bir yola yeniden yazma, 404 üretir, orijinal yola sessizce geri düşmek yerine. Yeniden yazma hedefleri, derleme çıktısında bulunmalıdır.
- Kurallar projenizin bir şey istenmeden önce çalışır, bu nedenle statik dosyalar ve sunucu modu istekleri için geçerli olur.
- Her ortam bağımsızdır. Üretim kuralları hazırlamaya veya önizlemelere uygulanmaz. Bunları kasıtlı olarak kopyalayın.
Bir Kuralı Silme
Kural satırında çöp simgesine tıklayın, ardından değişikliği uygulamak için Kuralları kaydet'e tıklayın. Bir kural eklemenin aksine, değişiklik sonraki dağıtımdan itibaren yürürlüğe girer.
Bunun Yerine Bir Edge İşlevini Ne Zaman Kullanacağınız
Yeniden yönlendirme motoru yol-yol kurallarını işler. Kural motorunun ifade edemediği mantık gerektiğinde bir edge işlevini kullanın: başlık veya tanımlama bilgisinde dallanma, sorgu parametrelerini koruma veya yeniden yazma, ağırlıklı A/B yönlendirmesi veya herhangi bir koşullu.