Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Ruslan Yakushev
Bagian dokumentasi ini berlaku untuk Modul Penulisan Ulang URL Versi 2.0 untuk IIS 7.
Panduan ini memandu Anda melalui cara menggunakan Modul Penulisan Ulang URL v 2.0 untuk mengatur header respons HTTP.
Prasyarat
Panduan ini memerlukan prasyarat berikut:
- IIS 7 atau lebih tinggi dengan layanan peran ASP.NET diaktifkan;
- Url Rewrite Modul 2.0 Release Candidate diinstal;
- Panduan selesai pada Proksi Terbalik dengan Penulisan Ulang URL v2 dan Perutean Permintaan Aplikasi.
Pengantar
Modul Penulisan Ulang URL 2.0 menyediakan dukungan untuk penulisan ulang berbasis aturan dari header HTTP respons. Skenario penggunaan yang sangat umum untuk mengatur header respons adalah memodifikasi respons pengalihan yang dihasilkan oleh aplikasi di belakang load balancer atau proksi terbalik. Misalnya, ketika aplikasi di belakang proksi terbalik mengembalikan respons pengalihan, header Lokasi HTTP dalam respons mungkin tidak mewakili alamat yang menghadap internet, melainkan alamat aplikasi internal. Modul Penulisan Ulang URL 2.0 dapat digunakan pada server proksi terbalik untuk mengubah header Lokasi dalam respons. Skenario diwakili pada diagram berikut:
- Klien HTTP membuat permintaan ke halaman
http://www.contoso.com/webmail/oldpage.aspx
web . - Server proksi terbalik menggunakan PENULISAN Ulang URL 2.0 dan Perutean Permintaan Aplikasi untuk meneruskan permintaan ke server konten internal berdasarkan nama folder di jalur URL yang diminta. Misalnya,
http://webmail/oldpage.aspx
; - Aplikasi web yang berjalan di server konten mengeluarkan respons pengalihan (HTTP/1.1 301) yang mengarahkan klien HTTP ke
http://webmail/newpage.aspx
; - Server proksi terbalik menggunakan REWrite URL 2.0 untuk menggantikan lokasi pengalihan berbasis internal sebagai respons dengan lokasi pengalihan berbasis internet:
http://www.contoso.com/webmail/newpage.aspx
.
Menyiapkan skenario penelusuran
Untuk menyiapkan skenario penelusuran, selesaikan panduan tentang Proksi Terbalik dengan Penulisan Ulang URL v2 dan Perutean Permintaan Aplikasi. Di akhir panduan itu, Anda harus memiliki situs web proksi terbalik yang merutekan permintaan ke dua aplikasi konten: webmail dan penggajian.
Untuk panduan ini, Anda harus menambahkan logika pengalihan ke aplikasi webmail. Dalam skenario kehidupan nyata, itu mungkin akan menjadi pengalihan yang dimulai oleh kode aplikasi web tetapi, untuk kesederhanaan, dalam panduan ini Anda akan menggunakan aturan pengalihan dalam Modul Penulisan Ulang URL.
Buat file bernama web.config di folder berikut:
%SystemDrive%\inetpub\webmail
Buka file di editor teks, tempelkan kode XML berikut di dalam lalu simpan file:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Redirect" stopProcessing="true"> <match url="^index\.aspx$" /> <action type="Redirect" url="default.aspx" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
Ini adalah aturan yang akan mengalihkan semua permintaan index.aspx ke default.aspx.
Sekarang buka browser web dan buat permintaan http://localhost/webmail/index.aspx
. Perhatikan bahwa browser dialihkan ke http://localhost:8081/default.aspx
, yang pada dasarnya adalah URL internal yang digunakan oleh aplikasi webmail web. Sekarang Anda akan mengonfigurasi aturan Penulisan Ulang URL untuk mengubah header Lokasi HTTP di respons pengalihan HTTP sehingga browser dialihkan ke URL yang tepat: http://localhost/webmail/default.aspx
.
Memodifikasi aturan masuk untuk mempertahankan header host
Agar dapat memodifikasi header Lokasi HTTP, perlu untuk mempertahankan nilai asli header host HTTP. Aturan penulisan ulang keluar menggunakan nilai yang dipertahankan saat memodifikasi respons. Untuk mempertahankan nilai asli, simpan dalam variabel server sementara ORIGINAL_HOST.
- Di halaman tampilan fitur Penulisan Ulang URL utama, pilih Tampilkan Variabel Server di panel Tindakan di sisi kanan:
- Di halaman Variabel Server yang Diizinkan , pilih Tambahkan lalu masukkan nama variabel server yang akan digunakan untuk menyimpan sementara nilai header Host HTTP. Misalnya, ORIGINAL_HOST:
- Pilih OK untuk menyimpan perubahan lalu kembali ke halaman tampilan fitur Penulisan Ulang URL utama. Setelah itu, pilih aturan masuk "Proksi Balik ke webmail" dan pilih Edit.
- Di halaman Edit Aturan Masuk , perluas kotak grup "Variabel Server"; lalu pilih Tambahkan dan masukkan "ORIGINAL_HOST" untuk nama variabel server dan "{HTTP_HOST}" untuk "Nilai":
Membuat aturan keluar untuk mengubah header respons HTTP
Sekarang Anda akan membuat aturan penulisan ulang keluar yang menulis ulang header Lokasi HTTP dalam respons pengalihan untuk menambahkan kembali folder aplikasi ke jalur URL dan untuk mengganti nama host.
- Di halaman tampilan fitur Penulisan Ulang URL utama, pilih "Tambahkan Aturan" lalu pilih "Aturan Kosong" di bawah kategori "Aturan Keluar".
- Di halaman "Edit Aturan Keluar", beri nama aturan sebagai "Rewrite Location Header".
- Di daftar drop-down "Pra-kondisi", pilih "<Buat Pra-Kondisi> Baru".
- Dalam dialog "Tambahkan Pra-Kondisi", beri nama pra-kondisi sebagai "Pengalihan"
- Pilih "Tambahkan" lalu masukkan {RESPONSE_STATUS} sebagai input kondisi dan "3\d\d" sebagai pola. Pra-kondisi ini digunakan untuk memeriksa apakah respons memiliki kode status pengalihan, seperti 301, 302, 307, dan sebagainya. Dialog pra-kondisi akan terlihat mirip dengan yang berikut ini:
- Pilih OK untuk kembali ke halaman Edit Aturan Keluar .
- Dalam kotak Cocokkan grup, gunakan daftar drop-down Cakupan yang cocok untuk memilih Variabel Server.
- Masukkan RESPONSE_Location untuk "Nama variabel" dan "^http://[^/]+/(.*)" untuk "Pola". Ini mengonfigurasi aturan untuk beroperasi pada header HTTP respons "Lokasi" dan mencocokkan nilainya dengan pola regex yang menyimpan jalur URL ke dalam referensi kembali.
- Perluas kotak grup "Kondisi", pilih "Tambahkan" dan masukkan {ORIGINAL_HOST} sebagai input kondisi dan ".+" sebagai pola kondisi. Kondisi ini memeriksa apakah variabel server sementara ORIGINAL_HOST ada dan memiliki nilai yang tidak kosong.
- Pilih Tambahkan sekali lagi dan tambahkan kondisi lain. Atur input kondisi ke {URL} dan pola ke "^/(webmail|payroll)/.*". Ekspresi reguler ini digunakan untuk mencocokkan jalur URL yang dimulai dengan /webmail atau /payroll. Selain itu, tanda kurung dalam pola menangkap bagian dari string URL yang cocok, sehingga dapat digunakan kembali saat membuat URL pengganti.
- Terakhir, dalam kotak grup "Tindakan" pilih tindakan "Tulis Ulang" dan masukkan "
http://{ORIGINAL_HOST}/{C:1}/{R:1}
" sebagai nilai. Tindakan ini menggantikan nilai header Lokasi HTTP dengan string yang dibangun dengan menggunakan nama host dari variabel server, referensi kembali kondisi yang berisi awalan folder jalur URL dan referensi kembali aturan yang berisi jalur URL saat ini di header Lokasi.
Halaman lengkap akan terlihat seperti berikut ini:
Menguji aturan
Untuk menguji bahwa aturan berfungsi dengan benar, buka browser web dan buat permintaan ke http://localhost/webmail/index.aspx
. Browser harus dialihkan ke http://localhost/webmail/default.aspx
:
Ringkasan
Dalam panduan ini:
- Anda telah mempelajari cara menggunakan beberapa fitur baru di REwrite URL 2.0 untuk menerapkan skenario proksi terbalik yang berfungsi penuh.
- Anda telah mengonfigurasi aturan masuk untuk meneruskan permintaan ke server konten back-end dan untuk mengatur variabel server sementara.
- Anda kemudian telah menentukan aturan keluar yang memodifikasi header Lokasi HTTP dalam respons pengalihan yang dihasilkan oleh aplikasi web dari server konten back-end.