Bagikan melalui


Http Redirects <httpRedirect>

Elemen mengonfigurasi <httpRedirect> pengaturan untuk Internet Information Services (IIS) 7 yang mengalihkan permintaan klien ke lokasi baru.

Ada beberapa alasan mengapa Anda mungkin ingin mengalihkan klien ke lokasi baru. Misalnya, jika perusahaan Anda bermigrasi ke situs Web baru, Anda dapat mengalihkan semua permintaan dari situs Web lama ke situs Web baru. Demikian juga, jika Anda telah menyebarkan aplikasi baru di server Web, Anda dapat mengalihkan semua permintaan untuk namespace URL aplikasi lama (misalnya, http://www.contoso.com/app_v1.0/) ke lokasi aplikasi baru (misalnya, http://www.contoso.com/app_v2.0/).

Dalam konfigurasi paling sederhana, Anda hanya perlu mengatur atribut <httpRedirect> elemen yang diaktifkan dan tujuan untuk mengalihkan klien ke lokasi baru. Namun, elemen tambahan seperti atribut exactDestination dan httpResponseStatus memungkinkan Anda mengonfigurasi pengalaman pengguna akhir dari pengalihan dengan masing-masing menentukan apakah IIS 7 akan mengembalikan URL tujuan persis seperti yang dimasukkan dan kode respons HTTP mana yang akan kembali ke klien Web.

Kompatibilitas

Versi Catatan
IIS 10.0 Status respons HTTP tambahan ditambahkan ke <httpRedirect> elemen di IIS 10.0.
IIS 8.5 Elemen <httpRedirect> tidak dimodifikasi dalam IIS 8.5.
IIS 8.0 Elemen <httpRedirect> tidak dimodifikasi dalam IIS 8.0.
IIS 7.5 Elemen <httpRedirect> tidak dimodifikasi dalam IIS 7.5.
IIS 7.0 Elemen ini <httpRedirect> diperkenalkan di IIS 7.0.
IIS 6.0 Elemen menggantikan <httpRedirect> properti metabase HttpRedirect IIS 6.0.

Siapkan

Pengalihan HTTP tidak tersedia pada penginstalan default IIS 7 dan yang lebih baru. Untuk menginstalnya, gunakan langkah-langkah berikut.

Windows Server 2012 atau Windows Server 2012 R2

  1. Pada taskbar, klik Manajer Server.
  2. Di Manajer Server, klik menu Kelola , lalu klik Tambahkan Peran dan Fitur.
  3. Di wizard Tambahkan Peran dan Fitur , klik Berikutnya. Pilih jenis penginstalan dan klik Berikutnya. Pilih server tujuan dan klik Berikutnya.
  4. Pada halaman Peran Server , perluas Server Web (IIS), perluas Server Web, perluas Fitur HTTP Umum, lalu pilih Pengalihan HTTP. Klik Berikutnya.
    Cuplikan layar halaman Peran Server. Pengalihan H T T P dipilih dan disorot. .
  5. Pada halaman Pilih fitur, klik Berikutnya.
  6. Pada halaman Konfirmasi pilihan instalasi, klik Instal.
  7. Pada halaman Hasil , klik Tutup.

Windows 8 atau Windows 8.1

  1. Pada layar Mulai, pindahkan penunjuk ke sudut kiri bawah, klik kanan tombol Mulai, lalu klik Panel Kontrol.
  2. Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan fitur Windows.
  3. Perluas Layanan Informasi Internet, perluas Layanan Web Seluruh Dunia, perluas Fitur HTTP Umum, lalu pilih Pengalihan HTTP.
    Cuplikan layar pohon navigasi Layanan Informasi Internet. Opsi World Wide Web Services diperluas. Fitur H T T P Umum diperluas dan Pengalihan H T T P dipilih.
  4. Klik OK.
  5. Klik Tutup.

Windows Server 2008 atau Windows Server 2008 R2

  1. Pada taskbar, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Server.
  2. Di panel hierarki Manajer Server , perluas Peran, lalu klik Server Web (IIS).
  3. Di panel Server Web (IIS), gulir ke bagian Layanan Peran , lalu klik Tambahkan Layanan Peran.
  4. Pada halaman Pilih Layanan Peran dari Wizard Tambahkan Layanan Peran, perluas Fitur Http Umum, pilih Pengalihan HTTP, lalu klik Berikutnya.
    Cuplikan layar bagian Layanan Peran. Pengalihan H T T P dipilih dan disorot.
  5. Pada halaman Konfirmasi Pilihan Penginstalan , klik Instal.
  6. Pada halaman Hasil , klik Tutup.

Windows Vista atau Windows 7

  1. Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
  2. Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan Fitur Windows.
  3. Perluas Layanan Informasi Internet, lalu World Wide Web Services, lalu Fitur Http Umum.
  4. Pilih Pengalihan HTTP, lalu klik OK.
    Cuplikan layar pohon navigasi Program dan Fitur. Pengalihan H T T P dipilih dan disorot.

Bagaimana Caranya

Tidak ada antarmuka pengguna untuk menambahkan pengalihan HTTP kartubebas untuk IIS 7. Untuk contoh cara menambahkan <add> elemen ke <httpRedirect> elemen secara terprogram, lihat bagian Sampel Kode dari dokumen ini.

Cara menambahkan aturan pengalihan HTTP ke situs web atau aplikasi

  1. Buka Pengelola Layanan Informasi Internet (IIS):

    • Jika Anda menggunakan Windows Server 2012 atau Windows Server 2012 R2:

      • Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik Pengelola Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows 8 atau Windows 8.1:

      • Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
      • Klik Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows Server 2008 atau Windows Server 2008 R2:

      • Pada bilah tugas, klik Mulai, arahkan ke Alat Administratif, lalu klik Pengelola Layanan Informasi Internet (IIS).
    • Jika Anda menggunakan Windows Vista atau Windows 7:

      • Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
      • Klik dua kali Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
  2. Di panel Koneksi , perluas nama server, perluas Situs, lalu navigasikan ke situs Web atau aplikasi yang ingin Anda konfigurasi halaman kesalahan kustomnya.

  3. Di panel Beranda , klik dua kali Pengalihan HTTP.
    Cuplikan layar panel Beranda. Ikon Pengalihan H T T P disorot dan dipilih.

  4. Di panel Pengalihan HTTP , centang kotak untuk mengalihkan permintaan dan memasukkan URL tujuan.
    Cuplikan layar panel Pengalihan H T T P. Kotak di samping Alihkan permintaan ke tujuan ini dicentang.

  5. Anda dapat secara opsional menentukan salah satu opsi berikut:

    • Konfigurasikan tujuan pengalihan menjadi tujuan yang tepat seperti yang dimasukkan.

    • Konfigurasikan tujuan pengalihan agar terbatas pada folder akar URL tujuan, bukan subfolder.

    • Konfigurasikan kode status HTTP, yang bisa menjadi salah satu opsi berikut:

      • 301 Permanen
      • 302 Ditemukan
      • 307 Sementara
      • Pengalihan Permanen 308

      Catatan

      IIS 7 masing-masing akan mengembalikan status respons HTTP aktual berikut untuk setiap opsi di atas:

      • HTTP/1.1 301 Dipindahkan Secara Permanen
      • PENGAlihan HTTP/1.1 302
      • Pengalihan HTTP/1.1 307
      • HTTP 1.1 308 Dialihkan Secara Permanen
  6. Setelah Anda menyelesaikan semua perubahan di atas, klik Terapkan di panel Tugas .

Konfigurasi

Atribut

Atribut Deskripsi
childOnly Atribut Boolean opsional.

Menentukan apakah nilai tujuan harus ditambahkan ke awal nama file yang berisi permintaan yang akan dialihkan. Misalnya, jika childOnly diatur ke true dan nilai tujuan dikonfigurasi menjadi http://marketing.contoso.com/, permintaan http://contoso.com/default.htm akan dialihkan ke http://marketing.contoso.com/default.htm.

Nilai defaultnya adalah false.
destination Atribut string opsional.

Menentukan URL atau jalur virtual untuk mengalihkan klien.
enabled Atribut Boolean opsional.

Menentukan apakah pengalihan diaktifkan (benar) atau dinonaktifkan (false).

Nilai defaultnya adalah false.
exactDestination Atribut Boolean opsional.

Menentukan bahwa nilai tujuan harus dianggap sebagai lokasi target absolut, bukan lokasi relatif.

Nilai defaultnya adalah false.
httpResponseStatus Atribut enum opsional.

Menentukan jenis pengalihan.

Atribut httpResponseStatus dapat menjadi salah satu nilai yang mungkin berikut. Default adalah Found.
Nilai Deskripsi
Found Mengembalikan kode status 302, yang memberi tahu klien untuk mengeluarkan permintaan baru ke lokasi yang ditentukan dalam atribut tujuan.

Nilai numerik adalah 302.
Permanent Mengembalikan kode status 301, yang memberi tahu klien bahwa lokasi untuk sumber daya yang diminta telah berubah secara permanen.

Nilai numerik adalah 301.
Temporary Mengembalikan kode status 307, yang mencegah klien kehilangan data saat browser mengeluarkan permintaan HTTP POST.

Nilai numerik adalah 307.
PermRedirect Mengembalikan kode status 308, yang memberi tahu klien bahwa lokasi untuk sumber daya yang diminta telah berubah secara permanen.

Nilai numerik adalah 308.

Elemen Anak

Elemen Deskripsi
add Elemen opsional.

Menambahkan aturan pengalihan kartubebas ke kumpulan aturan pengalihan.
clear Elemen opsional.

Menghapus semua referensi ke aturan pengalihan kartubebas dari kumpulan aturan pengalihan.
remove Elemen opsional.

Menghapus referensi ke aturan pengalihan kartubebas dari kumpulan aturan pengalihan.

Sampel Konfigurasi

Elemen default <httpRedirect> berikut dikonfigurasi dalam file ApplicationHost.config root di IIS 7 saat layanan peran Pengalihan HTTP diinstal. Bagian konfigurasi ini mewarisi pengaturan konfigurasi default kecuali Anda menggunakan <clear> elemen .

<system.webServer>
   <httpRedirect enabled="false" />
</system.webServer>

Sampel konfigurasi berikut memungkinkan pengalihan dan mengonfigurasi URL tujuan tempat klien dialihkan.

<system.webServer>
   <httpRedirect enabled="true" destination="http://www.contoso.com/" />
</system.webServer>

Sampel konfigurasi berikut menambahkan entri pengalihan kartubebas yang mengalihkan semua permintaan untuk file PHP ke halaman beranda situs Web Anda.

Catatan

Contoh ini berguna jika Anda telah menghapus semua aplikasi berbasis ASP dari situs Web Anda dan Anda ingin permintaan klien untuk aplikasi lama diarahkan ke akar situs Web Anda daripada menerima respons HTTP 404 Tidak Ditemukan .

<configuration>
   <system.webServer>
      <httpRedirect enabled="true" exactDestination="true" httpResponseStatus="Found">
         <add wildcard="*.php" destination="/default.htm" />
      </httpRedirect>
   </system.webServer>
</configuration>

Kode Sampel

Sampel kode berikut mengonfigurasi Situs Web Default untuk mengalihkan semua permintaan menggunakan http://www.contoso.com kode status HTTP 302.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/httpRedirect /enabled:"True"
appcmd.exe set config "Default Web Site" -section:system.webServer/httpRedirect /destination:"http://www.contoso.com"
appcmd.exe set config "Default Web Site" -section:system.webServer/httpRedirect /exactDestination:"False"
appcmd.exe set config "Default Web Site" -section:system.webServer/httpRedirect /httpResponseStatus:"Found"

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetWebConfiguration("Default Web Site");

         ConfigurationSection httpRedirectSection = config.GetSection("system.webServer/httpRedirect");
         httpRedirectSection["enabled"] = true;
         httpRedirectSection["destination"] = @"http://www.contoso.com";
         httpRedirectSection["exactDestination"] = false;
         httpRedirectSection["httpResponseStatus"] = @"Found";

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")

      Dim httpRedirectSection As ConfigurationSection = config.GetSection("system.webServer/httpRedirect")
      httpRedirectSection("enabled") = True
      httpRedirectSection("destination") = "http://www.contoso.com"
      httpRedirectSection("exactDestination") = False
      httpRedirectSection("httpResponseStatus") = "Found"

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";

var httpRedirectSection = adminManager.GetAdminSection("system.webServer/httpRedirect", "MACHINE/WEBROOT/APPHOST/Default Web Site");
httpRedirectSection.Properties.Item("enabled").Value = true;
httpRedirectSection.Properties.Item("destination").Value = "http://www.contoso.com";
httpRedirectSection.Properties.Item("exactDestination").Value = false;
httpRedirectSection.Properties.Item("httpResponseStatus").Value = "Found";

adminManager.CommitChanges();

Vbscript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"

Set httpRedirectSection = adminManager.GetAdminSection("system.webServer/httpRedirect", "MACHINE/WEBROOT/APPHOST/Default Web Site")
httpRedirectSection.Properties.Item("enabled").Value = True
httpRedirectSection.Properties.Item("destination").Value = "http://www.contoso.com"
httpRedirectSection.Properties.Item("exactDestination").Value = False
httpRedirectSection.Properties.Item("httpResponseStatus").Value = "Found"

adminManager.CommitChanges()

Sampel kode berikut menambahkan entri pengalihan kartubebas yang mengalihkan semua permintaan untuk file ASP ke halaman beranda situs Web Anda.

Catatan

Contoh ini berguna jika Anda telah menghapus semua aplikasi berbasis ASP dari situs Web Anda dan Anda ingin permintaan klien untuk aplikasi lama diarahkan ke akar situs Web Anda daripada menerima respons HTTP 404 Tidak Ditemukan .

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/httpRedirect /enabled:"True" /exactDestination:"True" /httpResponseStatus:"Found"

appcmd.exe set config "Default Web Site" -section:system.webServer/httpRedirect /+"[wildcard='*.asp',destination='/default.htm']"

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using(ServerManager serverManager = new ServerManager()) { 
         Configuration config = serverManager.GetWebConfiguration("Default Web Site");

         ConfigurationSection httpRedirectSection = config.GetSection("system.webServer/httpRedirect");
         httpRedirectSection["enabled"] = true;
         httpRedirectSection["exactDestination"] = true;
         httpRedirectSection["httpResponseStatus"] = @"Found";

         ConfigurationElementCollection httpRedirectCollection = httpRedirectSection.GetCollection();
         ConfigurationElement addElement = httpRedirectCollection.CreateElement("add");
         addElement["wildcard"] = @"*.asp";
         addElement["destination"] = @"/default.htm";
         httpRedirectCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")

      Dim httpRedirectSection As ConfigurationSection = config.GetSection("system.webServer/httpRedirect")
      httpRedirectSection("enabled") = True
      httpRedirectSection("exactDestination") = True
      httpRedirectSection("httpResponseStatus") = "Found"

      Dim httpRedirectCollection As ConfigurationElementCollection = httpRedirectSection.GetCollection
      Dim addElement As ConfigurationElement = httpRedirectCollection.CreateElement("add")
      addElement("wildcard") = "*.asp"
      addElement("destination") = "/default.htm"
      httpRedirectCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";

var httpRedirectSection = adminManager.GetAdminSection("system.webServer/httpRedirect", "MACHINE/WEBROOT/APPHOST/Default Web Site");
httpRedirectSection.Properties.Item("enabled").Value = true;
httpRedirectSection.Properties.Item("exactDestination").Value = true;
httpRedirectSection.Properties.Item("httpResponseStatus").Value = "Found";

var httpRedirectCollection = httpRedirectSection.Collection;
var addElement = httpRedirectCollection.CreateNewElement("add");
addElement.Properties.Item("wildcard").Value = "*.asp";
addElement.Properties.Item("destination").Value = "/default.htm";
httpRedirectCollection.AddElement(addElement);

adminManager.CommitChanges();

Vbscript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"

Set httpRedirectSection = adminManager.GetAdminSection("system.webServer/httpRedirect", "MACHINE/WEBROOT/APPHOST/Default Web Site")
httpRedirectSection.Properties.Item("enabled").Value = True
httpRedirectSection.Properties.Item("exactDestination").Value = True
httpRedirectSection.Properties.Item("httpResponseStatus").Value = "Found"

Set httpRedirectCollection = httpRedirectSection.Collection
Set addElement = httpRedirectCollection.CreateNewElement("add")
addElement.Properties.Item("wildcard").Value = "*.asp"
addElement.Properties.Item("destination").Value = "/default.htm"
httpRedirectCollection.AddElement(addElement)

adminManager.CommitChanges()