Merhaba arkadaşlar, bu yazımda sizlere .Net Core SEO Uyumlu Url Oluşturma konusundan bahsedeceğim.
Web projelerimizi oluştururken SEO uyumlu adresler oluşturursak eğer Google üzerinde aramalarda daha üst sıralara çıkabiliriz. MVC yapısını kullanıyorsak eğer bilindiği üzere Controller ve Action ile işlemler sağlanır. Örneğin: HomeController içerisinde bir Index aksiyonumuz bulunuyorsa bu sayfamıza “http://siteadi.com/Home/Index” şeklinde erişilecektir. Bu yazımızda da bu Url bilgilerini nasıl anlamlı hale getirebilir ve SEO uyumlu yapabiliriz uygulayarak gerçekleştireceğiz.
Projemizi .Net Core 6 Web Projesi olarak açıyoruz. Create New Project diyerek buradan da ASP.NET Core Web App(Model-View-Controller) seçeneği ile projemizi oluşturuyoruz.
Projemizi oluşturduktan sonra HomeController dosyamız otomatik olarak gelecektir. Ek olarak CategoryController eklemesi yapıyoruz.
public class CategoryController : Controller
{
public IActionResult Index()
{
return View();
}
public IActionResult Detail(int id)
{
return View();
}
}
CategoryController dosyamızda da iki adet aksiyon bulunuyor. Yani Index ve Detail sayfamız bulunuyor. Bu sayfaların View dosyalarını da oluşturuyoruz.
Şimdi de Program.cs dosyamıza gidiyoruz. Burada Route tanımlamaları yazacağız.
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.MapControllerRoute(name: "homePage", pattern: "anasayfa", defaults: new { controller = "Home", action = "Index" });
app.MapControllerRoute(name: "categoryDetail", pattern: "kategori/{title}/{id}", defaults: new { controller = "Category", action = "Detail" });
Default olarak bir Route tanımlaması bulunuyor. Ek olarak biz de Url’de anasayfa adresi bulunuyorsa hangi Controller‘a ve aksiyona gitmesi gerektiğini belirtiyoruz. CategoryController‘da bulunan Detail aksiyonu için de pattern olarak “kategori/{title}/{id}” tanımlamasını yapıyoruz. Yani Url üzerinden adreste “/anasayfa” yazarsa HomeController‘da Index aksiyonuna yönlendirilecektir. Eğer Url üzerinden “/kategori/kategori-adi/1” şeklinde bir şey yazıyorsa da CategoryController‘da bulunan Detail aksiyonuna gidecek ve Url sonunda yazan değeri Id olarak alacaktır sonrasında da işlemler yapılıp sayfamız gösterilecektir.
Tabi CategoryController için bulunan {title} değerimizi Url yönlendirmeleri yaparken kategorimizin adını yazdırmak istediğimizde bu değeri Replace etmemiz gerekmektedir. Bu değerde türkçe karakterleri, boşlukları, özel karakterleri kaldırmamız ya da yerine bir değer koymamız gerekir. Örneğin: Ü harfi için bunu replace ederek U harfine çevirmek, özel karakterler yerine Empty String vermek gibi.
Umarım faydalı olur.
Bir sonraki yazıda görüşmek üzere…
Detaylı İyi Bir Paylaşım Olmuş
Teşekkürler