Next.js URL Yapısını "/" yerine "-" ile nasıl düzenlenir?

Lordwarge

Centipat
Katılım
10 Şubat 2024
Mesajlar
156
Daha fazla  
Cinsiyet
Erkek
Merhaba arkadaşlar, genelde Next.js projelerinde URL yapıları / karakteri kullanılarak yapılandırılıyor, örneğin url/abc/cba. ancak, ben URL yapısında / yerine - karakterini kullanmak istiyorum. Yani, aşağıdaki gibi. [slug] kısmı dinamik.

  • [slug]-fiyatlari
  • [slug]-yemekler
  • [slug]-malzemeleri
Bu tür dinamik URL yapısına geçebilir miyim? Şimdiden teşekkürler
 
Çözüm araştırırken şu issue'ya denk geldim:


NextJS config'indeki rewrites seçeneğini kullanmayı önermişler. Başka bir çözüm bulamadım, aklıma da gelmedi.

En kolay örneklerden biri olarak şunu göstereyim:

JavaScript:
/** @type {import('next').NextConfig} */
const nextConfig = {
  async rewrites() {
    return [
      {
        source: "/:urun-fiyat",
        destination: "/:urun/fiyat",
      },
    ];
  },
};

export default nextConfig;

Basit olması için direkt root'ta olduğunu varsaydım sayfanın. Sizdeki URL yapısına göre çözüm üretmek mümkün olmalı.

Bu örneğin sağladığı şey şu: /:urun-fiyat URL'ine gittiğinde /:urun/fiyat sayfasını göster.

Yani source'a kullanıcının göreceği URL formatını yazıyorsunuz, gözükense destination dizinindeki dosyanız.

Tabii bu örnekte /:urun/fiyat URL'i devre dışı kalmıyor. İki URL de kullanılabiliyor.
 
Çözüm araştırırken şu issue'ya denk geldim:


NextJS config'indeki rewrites seçeneğini kullanmayı önermişler. Başka bir çözüm bulamadım, aklıma da gelmedi.

En kolay örneklerden biri olarak şunu göstereyim:

JavaScript:
/** @type {import('next').NextConfig} */
const nextConfig = {
  async rewrites() {
    return [
      {
        source: "/:urun-fiyat",
        destination: "/:urun/fiyat",
      },
    ];
  },
};

export default nextConfig;

Basit olması için direkt root'ta olduğunu varsaydım sayfanın. Sizdeki URL yapısına göre çözüm üretmek mümkün olmalı.

Bu örneğin sağladığı şey şu: /:urun-fiyat URL'ine gittiğinde /:urun/fiyat sayfasını göster.

Yani source'a kullanıcının göreceği URL formatını yazıyorsunuz, gözükense destination dizinindeki dosyanız.

Tabii bu örnekte /:urun/fiyat URL'i devre dışı kalmıyor. İki URL de kullanılabiliyor.
Cevabınız için teşekkür ederim hocam yöntemi denediğim zaman güncelleyeceğim

Denedim çalıştı hocam teşekkürler ilerde sorun çıkartırsa tekrar düzenlerim
 
Son düzenleme:

Technopat Haberler

Yeni konular

Geri
Yukarı