Menggunakan Modul Penulisan Ulang URL 2.0

oleh Ruslan Yakushev

Pengantar

Bagian dokumentasi ini berlaku untuk Penulisan Ulang URL 2.0 untuk IIS 7.

Penulisan Ulang URL 2.0 untuk IIS 7 ke atas adalah rilis bertahap yang mencakup semua fitur dari versi 1.1, dan menambahkan dukungan untuk ekstensibilitas .NET dan untuk penulisan ulang respons keluar. Lebih khusus lagi, ini dapat digunakan untuk:

  • Menerapkan logika penulisan ulang yang kompleks dengan menggunakan penyedia penulisan ulang yang ditulis dalam .NET
  • Ganti URL yang dihasilkan oleh aplikasi web dalam HTML respons dengan yang lebih ramah pengguna dan ramah mesin pencari yang setara
  • Ubah tautan dalam markup HTML yang dihasilkan oleh aplikasi web di belakang proksi terbalik.
  • Perbaiki konten respons HTTP apa pun dengan menggunakan pencocokan pola ekspresi reguler.
  • Ubah header permintaan dan respons HTTP dan variabel server IIS.

Fitur

Penulisan Ulang URL 2.0 menyertakan fitur utama berikut:

  • Penyedia penulisan ulang kustom (baru di RTW). Penyedia penulisan ulang dapat digunakan ketika logika penulisan ulang URL tidak dapat diekspresikan dalam hal pola ekspresi reguler atau ketika diperlukan untuk membuat keputusan penulisan ulang berdasarkan data yang disimpan di luar file web.config (misalnya database SQL atau file teks). Penyedia penulisan ulang pelanggan dapat diimplementasikan dalam bahasa .NET apa pun.
  • Mesin penulisan ulang respons berbasis aturan. Aturan keluar digunakan untuk mengekspresikan logika tentang apa yang harus membandingkan bagian respons dengan dan apa yang harus dilakukan jika perbandingan berhasil. Administrator server web dan situs dapat menggunakan aturan keluar untuk menentukan logika penulisan ulang respons yang kompleks.
  • Menulis ulang dalam konten tag HTML tertentu. Alih-alih memindai seluruh respons untuk kecocokan tertentu, aturan dapat dikonfigurasi untuk melihat hanya di dalam tag HTML tertentu, seperti<>, <img>, dll. Dengan begitu pola sangat disederhanakan dan proses penerapan aturan ke konten jauh lebih cepat dibandingkan dengan menerapkan pola ke seluruh respons.
  • Pra-kondisi untuk aturan keluar. Menerapkan aturan penulisan ulang pada setiap respons adalah operasi yang mahal dan tidak diperlukan dalam sebagian besar kasus. Pra-kondisi digunakan untuk memeriksa metadata respons untuk menentukan apakah evaluasi aturan keluar harus diterapkan.
  • Penulisan ulang variabel server dan header permintaan HTTP. Berbagai variabel server IIS dan header permintaan HTTP dapat diatur dengan menggunakan aturan penulisan ulang.
  • Penulisan ulang header respons HTTP. Aturan penulisan ulang keluar dapat digunakan untuk memodifikasi header respons HTTP yang ada atau untuk mengatur yang baru.
  • Perbolehkan daftar untuk variabel server. Untuk mencegah aturan penulisan ulang terdistribusi secara tidak sengaja atau sengaja memodifikasi variabel server IIS yang dapat memengaruhi perilaku keamanan atau runtime aplikasi web, variabel server yang dapat dimodifikasi sekarang harus ditambahkan secara eksplisit ke daftar izinkan.
  • Fungsi HtmlEncode. Penulisan ulang keluar mungkin sering menggunakan data yang tidak tepercaya (misalnya string kueri atau header HTTP) untuk membangun string pengganti untuk disisipkan ke dalam respons HTTP. Dalam kasus tersebut, fungsi HtmlEncode harus digunakan untuk mencegah penyisipan skrip sisi klien ke dalam respons, yang dapat mengakibatkan kerentanan pembuatan skrip lintas situs.
  • Melacak grup pengambilan di seluruh kondisi aturan. Kondisi logika referensi balik di Penulisan Ulang URL 1.1 hanya berfungsi terhadap kondisi terakhir yang cocok. Dalam v2 dimungkinkan untuk mengonfigurasi logika referensi balik untuk bekerja terhadap semua kondisi yang cocok.
  • Templat aturan untuk Pengoptimalan Mesin Pencari (baru di RTW). Tiga templat aturan baru memudahkan untuk membuat aturan pengalihan yang akan memberlakukan penggunaan URL kanonis untuk halaman web di situs Anda.
  • Templat aturan Proksi Terbalik (baru di RTW). Templat ini dapat digunakan untuk menghasilkan aturan penulisan ulang masuk dan keluar dengan sangat cepat yang menerapkan konfigurasi proksi terbalik.
  • Pengelogan URL yang ditulis ulang. Aturan penulisan ulang dapat dikonfigurasi untuk mencatat URL yang ditulis ulang di log IIS W3C dibandingkan dengan pengelogan URL yang awalnya diminta.
  • Antarmuka pengguna yang diperbarui di IIS Manager. Antarmuka pengguna telah ditingkatkan secara signifikan untuk mewakili konfigurasi modul dengan lebih baik dan untuk menyederhanakan tugas umum seperti mengonfigurasi aturan penulisan ulang dan kondisi penulisan ulang.

Menginstal modul

Unduh URL Rewrite 2.0 dengan menggunakan tautan di halaman beranda modul di https://www.iis.net/extensions/urlrewrite

Catatan

  • Jika versi penulisan ulang URL sebelumnya, seperti v1.0 dan v1.1, sudah diinstal maka akan ditingkatkan ke v2.0
  • Jika versi RC dari REwrite URL 2.0 sudah diinstal, maka akan ditingkatkan ke versi RTW.

Masalah Umum

  1. Penulisan ulang respons tidak berfungsi dengan kompresi statis. Anda harus menonaktifkan kompresi statis IIS untuk menggunakan penulisan ulang respons.
  2. Aturan keluar tidak diterapkan ke respons yang dikodekan transfer terpotong jika penulisan ulangBeforeCache diaktifkan. Atur rewriteBeforeCache ke false jika Anda perlu menulis ulang respons yang dikodekan transfer yang dipotong.

Menginstal sampel ekstensibilitas

Sampel Ekstensibilitas Penulisan Ulang URL mencakup rakitan .NET dan kode sumber yang mengimplementasikan penyedia ini:

  • DbProvider - penyedia ini dapat digunakan untuk mengambil pemetaan penulisan ulang dari tabel database SQL Server dengan menjalankan prosedur tersimpan;
  • FileMapProvider - penyedia ini dapat digunakan untuk mengambil pemetaan penulisan ulang yang disimpan dalam file teks;
  • FileContainsProvider - penyedia ini dapat digunakan untuk memeriksa apakah ada string dalam file teks yang merupakan substring dari string input penyedia.

Unduh Sampel Ekstensibilitas Penulisan Ulang URL dari Galeri Kode MSDN.

Menggunakan modul

Artikel-artikel ini mencakup fungsionalitas URL Rewrite v2.0 dan menjelaskan cara menggunakannya untuk mencapai skenario penulisan ulang umum.

Panduan

Referensi fungsionalitas