Bagikan melalui


Membuat URL yang Dapat Dibaca di Situs Halaman Web (Razor) ASP.NET

oleh Tom FitzMacken

Artikel ini menjelaskan perutean di situs web ASP.NET Web Pages (Razor), dan bagaimana ini memungkinkan Anda menggunakan URL yang lebih mudah dibaca dan lebih baik untuk SEO.

Yang akan Anda pelajari:

  • Cara ASP.NET menggunakan perutean untuk memungkinkan Anda menggunakan URL yang lebih mudah dibaca dan dapat dicari.

Versi perangkat lunak yang digunakan dalam tutorial

  • Halaman Web ASP.NET (Razor) 3

Tutorial ini juga berfungsi dengan ASP.NET Web Pages 2.

Tentang Perutean

URL untuk halaman di situs Anda dapat berdampak pada seberapa baik situs bekerja. URL yang "ramah" dapat memudahkan orang menggunakan situs. Ini juga dapat membantu pengoptimalan mesin pencari (SEO) untuk situs. ASP.NET situs web mencakup kemampuan untuk menggunakan URL yang ramah secara otomatis.

ASP.NET memungkinkan Anda membuat URL bermakna yang menjelaskan tindakan pengguna alih-alih hanya menunjuk ke file di server. Pertimbangkan URL ini untuk blog fiktif:

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

Bandingkan URL tersebut dengan URL berikut:

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

Pada pasangan pertama, pengguna harus tahu bahwa blog ditampilkan menggunakan halaman blog.cshtml , dan kemudian harus membuat string kueri yang mendapatkan kategori atau rentang tanggal yang tepat. Set contoh kedua jauh lebih mudah dipahami dan dibuat.

URL untuk contoh pertama juga menunjuk langsung ke file tertentu (blog.cshtml). Jika karena alasan tertentu blog dipindahkan ke folder lain di server, atau jika blog ditulis ulang untuk menggunakan halaman yang berbeda, tautan akan salah. Kumpulan URL kedua tidak menunjuk ke halaman tertentu, jadi meskipun implementasi blog atau lokasi berubah, URL akan tetap valid.

Di Halaman Web ASP.NET, Anda dapat membuat URL yang lebih ramah seperti yang ada dalam contoh di atas karena ASP.NET menggunakan perutean. Perutean membuat pemetaan logis dari URL ke halaman (atau halaman) yang dapat memenuhi permintaan. Karena pemetaan logis (bukan fisik, ke file tertentu), perutean memberikan fleksibilitas besar dalam cara Anda menentukan URL untuk situs Anda.

Cara Kerja Perutean

Saat ASP.NET memproses permintaan, ia membaca URL untuk menentukan cara merutekannya. ASP.NET mencoba mencocokkan segmen individu URL ke file di disk, dari kiri ke kanan. Jika ada kecocokan, apa pun yang tersisa di URL diteruskan ke halaman sebagai informasi jalur.

Bayangkan seseorang membuat permintaan menggunakan URL ini:

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

Pencarian berjalan seperti ini:

  1. Apakah ada file dengan jalur dan nama /a/b/c.cshtml? Jika demikian, jalankan halaman tersebut dan berikan tidak ada informasi ke halaman tersebut. Jika tidak ...
  2. Apakah ada file dengan jalur dan nama /a/b.cshtml? Jika demikian, jalankan halaman tersebut dan teruskan nilai c ke halaman tersebut. Sebaliknya...
  3. Apakah ada file dengan jalur dan nama /a.cshtml? Jika demikian, jalankan halaman tersebut dan teruskan nilai b/c ke halaman tersebut.

Jika pencarian tidak menemukan kecocokan yang tepat untuk file .cshtml di folder yang ditentukan, ASP.NET terus mencari file-file ini pada gilirannya:

  1. /a/b/c/default.cshtml (tidak ada informasi jalur).
  2. /a/b/c/index.cshtml (tidak ada informasi jalur).

Catatan

Agar jelas, permintaan untuk halaman tertentu (yaitu, permintaan yang menyertakan ekstensi nama file .cshtml ) berfungsi seperti yang Anda harapkan. Permintaan seperti http://www.contoso.com/a/b.cshtml akan menjalankan halaman b.cshtml dengan baik.

Di dalam halaman, Anda bisa mendapatkan informasi jalur melalui properti halaman UrlData , yang merupakan kamus. Bayangkan Anda memiliki file bernama ViewCustomers.cshtml dan situs Anda mendapatkan permintaan ini:

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

Seperti yang dijelaskan dalam aturan di atas, permintaan akan masuk ke halaman Anda. Di dalam halaman, Anda dapat menggunakan kode seperti berikut ini untuk mendapatkan dan menampilkan informasi jalur (dalam hal ini, nilai "1000"):

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

Catatan

Karena perutean tidak melibatkan nama file lengkap, mungkin ada ambiguitas jika Anda memiliki halaman yang memiliki nama yang sama tetapi ekstensi nama file yang berbeda (misalnya, MyPage.cshtml dan MyPage.html). Untuk menghindari masalah dengan perutean, yang terbaik adalah memastikan bahwa Anda tidak memiliki halaman di situs Anda yang namanya hanya berbeda dalam ekstensi mereka.

Sumber Daya Tambahan

WebMatrix - URL, UrlData, dan Perutean untuk SEO. Entri blog oleh Mike Brind ini menyediakan beberapa detail tambahan tentang cara kerja perutean di Halaman Web ASP.NET.