Bagikan melalui


HttpContext.RewritePath Metode

Definisi

Mengalihkan permintaan sumber daya ke jalur yang berbeda dari yang ditunjukkan oleh URL yang diminta. RewritePath digunakan dalam status sesi tanpa cookie untuk menghapus ID sesi dari URL.

Overload

RewritePath(String, String, String, Boolean)

Menulis ulang URL menggunakan jalur virtual yang diberikan, informasi jalur, informasi string kueri, dan nilai Boolean yang menentukan apakah jalur file klien diatur ke jalur penulisan ulang.

RewritePath(String, String, String)

Menulis ulang URL dengan menggunakan informasi jalur, informasi jalur, dan string kueri yang diberikan.

RewritePath(String, Boolean)

Menulis ulang URL menggunakan jalur yang diberikan dan nilai Boolean yang menentukan apakah jalur virtual untuk sumber daya server dimodifikasi.

RewritePath(String)

Menulis ulang URL menggunakan jalur yang diberikan.

RewritePath(String, String, String, Boolean)

Menulis ulang URL menggunakan jalur virtual yang diberikan, informasi jalur, informasi string kueri, dan nilai Boolean yang menentukan apakah jalur file klien diatur ke jalur penulisan ulang.

public:
 void RewritePath(System::String ^ filePath, System::String ^ pathInfo, System::String ^ queryString, bool setClientFilePath);
public void RewritePath (string filePath, string pathInfo, string queryString, bool setClientFilePath);
member this.RewritePath : string * string * string * bool -> unit
Public Sub RewritePath (filePath As String, pathInfo As String, queryString As String, setClientFilePath As Boolean)

Parameter

filePath
String

Jalur virtual ke sumber daya yang melayani permintaan.

pathInfo
String

Informasi jalur tambahan yang akan digunakan untuk pengalihan URL. Untuk informasi selengkapnya, lihat PathInfo.

queryString
String

String kueri permintaan yang digunakan untuk pengalihan URL.

setClientFilePath
Boolean

true untuk mengatur jalur file yang digunakan untuk sumber daya klien ke nilai filePath parameter; jika tidak false.

Pengecualian

Parameter path tidak ada di direktori akar aplikasi saat ini.

Parameter filePath tidak ada di direktori akar aplikasi saat ini.

Contoh

Untuk contoh kode, lihat RewritePath(String) metode kelebihan beban.

Keterangan

Parameter filePath tidak menyertakan konten pathInfo parameter. Untuk URL http://www.microsoft.com/virdir/page.html/tail, parameternya filePath adalah http://www.microsoft.com/virdir/page.html, dan pathInfo parameternya adalah ekor.

Untuk memastikan bahwa jalur virtual yang digunakan untuk membuat jalur ke sumber daya tidak dimodifikasi, atur parameter ke setClientFilePathfalse. Skenario umum di mana Anda mungkin ingin mengatur setClientFilePath ke false adalah ketika Anda perlu menulis ulang URL, dan Anda menggunakan tema dan mengalihkan URL ke sumber daya yang terletak di folder yang berbeda dari sumber daya yang diminta.

Penulisan ulang URL berguna saat Anda ingin merestrukturisasi halaman di aplikasi Web Anda, dan Anda ingin memastikan bahwa orang yang telah menandai URL lama masih dapat menggunakannya setelah Anda memindahkan halaman. Penulisan ulang URL memungkinkan Anda meneruskan permintaan secara transparan ke lokasi halaman baru.

Jika Anda ingin mengaktifkan situs untuk menggunakan URL yang lebih ramah pengguna dan dioptimalkan untuk mesin pencari, alternatif yang lebih kuat adalah menggunakan perutean ASP.NET. Untuk informasi selengkapnya, lihat Perutean ASP.NET.

Lihat juga

Berlaku untuk

RewritePath(String, String, String)

Menulis ulang URL dengan menggunakan informasi jalur, informasi jalur, dan string kueri yang diberikan.

public:
 void RewritePath(System::String ^ filePath, System::String ^ pathInfo, System::String ^ queryString);
public void RewritePath (string filePath, string pathInfo, string queryString);
member this.RewritePath : string * string * string -> unit
Public Sub RewritePath (filePath As String, pathInfo As String, queryString As String)

Parameter

filePath
String

Jalur penulisan ulang internal.

pathInfo
String

Informasi jalur tambahan untuk sumber daya. Untuk informasi selengkapnya, lihat PathInfo.

queryString
String

String kueri permintaan.

Pengecualian

Parameter path tidak ada di direktori akar aplikasi saat ini.

Parameter filePath tidak ada di direktori akar aplikasi saat ini.

Contoh

Untuk contoh kode, termasuk contoh metode ini yang kelebihan beban, lihat RewritePath(String) metode kelebihan beban.

Keterangan

Metode mengalihkan RewritePath permintaan sumber daya ke sumber daya lain tanpa mengubah URL.

Parameter filePath tidak menyertakan pathInfo konten parameter. Untuk URL http://www.microsoft.com/virdir/page.html/tail, parameternya filePath adalah http://www.microsoft.com/virdir/page.html, dan pathInfo parameternya adalah ekor.

Penulisan ulang URL berguna saat Anda ingin merestrukturisasi halaman di aplikasi Web Anda, dan Anda ingin memastikan bahwa orang yang telah menandai URL lama masih dapat menggunakannya setelah Anda memindahkan halaman. Penulisan ulang URL memungkinkan Anda meneruskan permintaan secara transparan ke lokasi halaman baru.

Jika Anda ingin mengaktifkan situs untuk menggunakan URL yang lebih ramah pengguna dan dioptimalkan untuk mesin pencari, alternatif yang lebih kuat adalah menggunakan perutean ASP.NET. Untuk informasi selengkapnya, lihat Perutean ASP.NET.

Lihat juga

Berlaku untuk

RewritePath(String, Boolean)

Menulis ulang URL menggunakan jalur yang diberikan dan nilai Boolean yang menentukan apakah jalur virtual untuk sumber daya server dimodifikasi.

public:
 void RewritePath(System::String ^ path, bool rebaseClientPath);
public void RewritePath (string path, bool rebaseClientPath);
member this.RewritePath : string * bool -> unit
Public Sub RewritePath (path As String, rebaseClientPath As Boolean)

Parameter

path
String

Jalur penulisan ulang internal.

rebaseClientPath
Boolean

true untuk mengatur ulang jalur virtual; false untuk menjaga jalur virtual tetap tidak berubah.

Pengecualian

Parameternya path adalah null.

Parameter path tidak ada di direktori akar aplikasi saat ini.

Contoh

Untuk contoh kode, lihat RewritePath(String) metode kelebihan beban.

Keterangan

Metode HttpContext.RewritePath(String, Boolean) ini dipanggil oleh HttpContext.RewritePath(String) metode dengan parameter yang rebaseClientPath diatur ke true. Untuk memastikan bahwa jalur virtual yang digunakan untuk membuat jalur ke sumber daya tidak dimodifikasi, atur parameter ke rebaseClientPathfalse. Skenario umum di mana Anda mungkin ingin mengatur rebaseClientPath ke false adalah ketika Anda perlu menulis ulang URL, dan Anda menggunakan tema dan mengalihkan URL ke sumber daya yang terletak di folder yang berbeda dari sumber daya yang diminta.

Penulisan ulang URL berguna saat Anda ingin merestrukturisasi halaman di aplikasi Web Anda, dan Anda ingin memastikan bahwa orang yang telah menandai URL lama masih dapat menggunakannya setelah Anda memindahkan halaman. Penulisan ulang URL memungkinkan Anda meneruskan permintaan secara transparan ke lokasi halaman baru.

Jika Anda ingin mengaktifkan situs untuk menggunakan URL yang lebih ramah pengguna dan dioptimalkan untuk mesin pencari, alternatif yang lebih kuat adalah menggunakan perutean ASP.NET. Untuk informasi selengkapnya, lihat Perutean ASP.NET.

Lihat juga

Berlaku untuk

RewritePath(String)

Menulis ulang URL menggunakan jalur yang diberikan.

public:
 void RewritePath(System::String ^ path);
public void RewritePath (string path);
member this.RewritePath : string -> unit
Public Sub RewritePath (path As String)

Parameter

path
String

Jalur penulisan ulang internal.

Pengecualian

Parameternya path adalah null.

Parameter path tidak ada di direktori akar aplikasi saat ini.

Contoh

Contoh berikut menunjukkan cara menggunakan RewritePath metode untuk mengaktifkan situs Web untuk merespons URL yang tidak mencerminkan struktur file di situs Web. Blok kode pertama adalah halaman Web ASP.NET yang diberi nama RewritePath.aspx. Ini memerlukan string kueri. Jika nama situs Anda adalah WebSite1, URL http://localhost/WebSite1/RewritePath.aspx?page=1 menampilkan "Halaman 1" di browser. Blok kode yang mengikuti halaman Web adalah penanganan Application_BeginRequest aktivitas dalam file Global.asax. Kode ini mencegat permintaan URL seperti http://localhost/WebSite1/page1 dan mengonversinya ke formulir yang diperlukan untuk RewritePath.aspx sebelum diproses. Oleh karena itu, URL http://localhost/WebSite1/page1 memanggil RewritePath.aspx dengan parameter string kueri yang menampilkan "Halaman 1" di browser. Jika URL seperti http://localhost/WebSite1/page1 diterima, kelebihan beban RewritePath dipanggil yang memungkinkan Anda memberikan nilai untuk PathInfo properti serta parameter string kueri.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = "Page=" + Request.QueryString["page"] + " PathInfo=" + Request.PathInfo;
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        Label1.Text = "Page=" & Request.QueryString("page") & " PathInfo=" & Request.PathInfo
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>
</html>
void Application_BeginRequest(Object sender, EventArgs e)
{
    string originalPath = HttpContext.Current.Request.Path.ToLower();
    if (originalPath.Contains("/page1"))
    {
        Context.RewritePath(originalPath.Replace("/page1", "/RewritePath.aspx?page=page1"));
    }
    if (originalPath.Contains("/page2"))
    {
        Context.RewritePath(originalPath.Replace("/page2", "/RewritePath.aspx"), "pathinfo", "page=page2");
    }
}    
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
    Dim originalPath As String = HttpContext.Current.Request.Path.ToLower()
    If originalPath.Contains("/page1") Then
        Context.RewritePath(originalPath.Replace("/page1", "/RewritePath.aspx?page=page1"))
    End If
    If originalPath.Contains("/page2") Then
        Context.RewritePath(originalPath.Replace("/page2", "/RewritePath.aspx"), "pathinfo", "page=page2")
    End If
End Sub

Keterangan

Metode mengalihkan RewritePath(String) permintaan sumber daya ke jalur yang berbeda dari yang ditunjukkan oleh URL yang diminta. Jika Anda harus mengatur ulang jalur virtual sehingga permintaan dari klien untuk sumber daya server diselesaikan dengan benar, gunakan kelebihan beban metode ini yang mengambil rebaseClientPath parameter dan mengatur parameter ke false.

Penulisan ulang URL berguna saat Anda ingin merestrukturisasi halaman di aplikasi Web Anda, dan Anda ingin memastikan bahwa orang yang telah menandai URL lama masih dapat menggunakannya setelah Anda memindahkan halaman. Penulisan ulang URL memungkinkan Anda meneruskan permintaan secara transparan ke lokasi halaman baru.

Jika Anda ingin mengaktifkan situs untuk menggunakan URL yang lebih ramah pengguna dan dioptimalkan untuk mesin pencari, alternatif yang lebih kuat adalah menggunakan perutean ASP.NET. Untuk informasi selengkapnya, lihat Perutean ASP.NET.

Lihat juga

Berlaku untuk