Aracılığıyla paylaş


ASP.NET Web Sayfaları (Razor) Sitelerinde Okunabilir URL'ler Oluşturma

yazan: Tom FitzMacken

Bu makalede, ASP.NET Web Sayfaları (Razor) web sitesinde yönlendirme açıklanır ve bunun SEO için daha okunabilir ve daha iyi olan URL'leri nasıl kullanmanıza olanak tanır.

Öğrenecekleriniz:

  • ASP.NET daha okunabilir ve aranabilir URL'ler kullanmanıza olanak sağlamak için yönlendirmeyi nasıl kullanır?

Öğreticide kullanılan yazılım sürümleri

  • ASP.NET Web Sayfaları (Razor) 3

Bu öğretici ASP.NET Web Sayfaları 2 ile de çalışır.

Yönlendirme Hakkında

Sitenizdeki sayfaların URL'leri, sitenin ne kadar iyi çalıştığı üzerinde etki oluşturabilir. "Kolay" olan bir URL, kişilerin siteyi kullanmasını kolaylaştırabilir. Ayrıca site için arama motoru iyileştirme (SEO) konusunda da yardımcı olabilir. ASP.NET web siteleri, kolay URL'leri otomatik olarak kullanma özelliğini içerir.

ASP.NET, sunucudaki bir dosyayı işaret etmek yerine kullanıcı eylemlerini açıklayan anlamlı URL'ler oluşturmanıza olanak tanır. Kurgusal bir blog için şu URL'leri göz önünde bulundurun:

  • http://www.contoso.com/Blog/blog.cshtml?categories=hardware
  • http://www.contoso.com//Blog/blog.cshtml?startdate=2009-11-01&enddate=2009-11-30

Bu URL'leri aşağıdakilerle karşılaştırın:

  • http://www.contoso.com/Blog/categories/hardware/
  • http://www.contoso.com/Blog/2009/November

İlk çiftte, kullanıcının blog.cshtml sayfası kullanılarak blog'un görüntülendiğini bilmesi ve ardından doğru kategoriyi veya tarih aralığını alan bir sorgu dizesi oluşturması gerekir. İkinci örnek kümesinin anlaşılması ve oluşturulması çok daha kolaydır.

İlk örneğin URL'leri de doğrudan belirli bir dosyaya (blog.cshtml) işaret eder. Herhangi bir nedenle blog sunucudaki başka bir klasöre taşındıysa veya blog farklı bir sayfa kullanmak üzere yeniden yazıldıysa, bağlantılar yanlış olacaktır. İkinci URL kümesi belirli bir sayfaya işaret etmez, bu nedenle blog uygulaması veya konumu değişse bile URL'ler geçerli olmaya devam eder.

ASP.NET yönlendirme kullandığından, ASP.NET Web Sayfalarında yukarıdaki örneklerde yer alanlara benzer daha kolay URL'ler oluşturabilirsiniz. Yönlendirme, URL'den isteği karşılayabilen bir sayfaya (veya sayfaya) mantıksal eşleme oluşturur. Eşleme mantıksal olduğundan (belirli bir dosyaya fiziksel değil), yönlendirme siteniz için URL'leri tanımlama konusunda büyük esneklik sağlar.

Yönlendirme Nasıl Çalışır?

ASP.NET bir isteği işlediğinde, url'yi okuyarak nasıl yönlendirileceğini belirler. ASP.NET, URL'nin tek tek kesimlerini soldan sağa doğru disk üzerindeki dosyalarla eşleştirmeye çalışır. Eşleşme varsa, URL'de kalan her şey sayfaya yol bilgisi olarak geçirilir.

Birinin şu URL'yi kullanarak istekte bulunduğunu düşünün:

http://www.contoso.com/a/b/c

Arama şu şekildedir:

  1. Yolu ve adı /a/b/c.cshtml olan bir dosya var mı? Bu durumda, bu sayfayı çalıştırın ve hiçbir bilgi geçirmeden bu sayfaya iletin. Aksi taktirde...
  2. Yolu ve adı /a/b.cshtml olan bir dosya var mı? Öyleyse, bu sayfayı çalıştırın ve değerini c bu sayfaya geçirin. Aksi takdir -de...
  3. Yolu ve adı /a.cshtml olan bir dosya var mı? Öyleyse, bu sayfayı çalıştırın ve değerini b/c bu sayfaya geçirin.

Arama, belirtilen klasörlerinde .cshtml dosyaları için tam eşleşme bulamadıysa, ASP.NET sırayla bu dosyaları aramaya devam eder:

  1. /a/b/c/default.cshtml (yol bilgisi yok).
  2. /a/b/c/index.cshtml (yol bilgisi yok).

Not

Net olmak gerekirse, belirli sayfalara yönelik istekler (. cshtml dosya adı uzantısını içeren istekler) beklediğiniz gibi çalışır. gibi http://www.contoso.com/a/b.cshtml bir istek b.cshtml sayfasını sorunsuz bir şekilde çalıştırır.

Bir sayfanın içinde, yol bilgilerini sayfanın UrlData sözlük olan özelliği aracılığıyla alabilirsiniz. ViewCustomers.cshtml adlı bir dosyanız olduğunu ve sitenizin şu isteği alacağını düşünün:

http://mysite.com/myWebSite/ViewCustomers/1000

Yukarıdaki kurallarda açıklandığı gibi istek sayfanıza gider. Sayfanın içinde yol bilgilerini (bu örnekte "1000" değeri) almak ve görüntülemek için aşağıdaki gibi bir kod kullanabilirsiniz:

<!DOCTYPE html>
<html>
    <head>
        <title>URLData</title>
    </head>
    <body>
      Customer ID: @UrlData[0].ToString()
    </body>
</html>

Not

Yönlendirme tam dosya adları içermediğinden, aynı ada ancak farklı dosya adı uzantılarına (örneğin, MyPage.cshtml ve MyPage.html) sahip sayfalarınız varsa belirsizlik olabilir. Yönlendirmeyle ilgili sorunları önlemek için, sitenizde adları yalnızca uzantılarında farklı olan sayfaların olmadığından emin olmak en iyisidir.

Ek Kaynaklar

WebMatrix - URL'ler, URLData ve SEO için Yönlendirme. Mike Brind'in bu blog girdisi, yönlendirmenin ASP.NET Web Sayfalarında nasıl çalıştığı hakkında bazı ek ayrıntılar sağlar.