HttpContext.RewritePath Metoda

Definice

Přesměruje žádost o prostředek na jinou cestu než požadavek, který je označen požadovanou adresou URL. RewritePath se používá ve stavu relace bez souborů cookie k odstranění ID relací z adres URL.

Přetížení

RewritePath(String, String, String, Boolean)

Přepíše adresu URL pomocí dané virtuální cesty, informací o cestě, informací o řetězci dotazu a logické hodnoty, která určuje, jestli je cesta k souboru klienta nastavená na cestu přepsání.

RewritePath(String, String, String)

Přepíše adresu URL pomocí dané cesty, informací o cestě a informací o řetězci dotazu.

RewritePath(String, Boolean)

Přepíše adresu URL pomocí dané cesty a logické hodnoty, která určuje, jestli se změní virtuální cesta pro prostředky serveru.

RewritePath(String)

Přepíše adresu URL pomocí dané cesty.

RewritePath(String, String, String, Boolean)

Přepíše adresu URL pomocí dané virtuální cesty, informací o cestě, informací o řetězci dotazu a logické hodnoty, která určuje, jestli je cesta k souboru klienta nastavená na cestu přepsání.

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)

Parametry

filePath
String

Virtuální cesta k prostředku, který žádost obsluhuje.

pathInfo
String

Další informace o cestě, které se mají použít pro přesměrování adresy URL. Další informace naleznete v tématu PathInfo.

queryString
String

Řetězec dotazu požadavku, který se má použít pro přesměrování adresy URL.

setClientFilePath
Boolean

true pro nastavení cesty k souboru používanému pro klientské prostředky na hodnotu parametru filePath ; jinak false.

Výjimky

Parametr path není v kořenovém adresáři aktuální aplikace.

Parametr filePath není v kořenovém adresáři aktuální aplikace.

Příklady

Příklad kódu najdete v RewritePath(String) přetížení metody.

Poznámky

Parametr filePath neobsahuje obsah parametru pathInfo . Pro adresu URL http://www.microsoft.com/virdir/page.html/tailje filePath parametr http://www.microsoft.com/virdir/page.htmla pathInfo parametr je tail.

Chcete-li zajistit, aby virtuální cesta použitá k vytváření cest k prostředkům nebyla změněna, nastavte setClientFilePath parametr na false. Běžný scénář, ve kterém můžete chtít nastavit setClientFilePath false , je, když potřebujete přepsat adresu URL a používáte motivy a přesměrujete adresu URL na prostředek umístěný v jiné složce než požadovaný prostředek.

Přepsání adresy URL je užitečné, když chcete stránky ve webové aplikaci znovu strukturovat a chcete zajistit, aby je uživatelé, kteří mají záložkované staré adresy URL, mohli po přesunutí stránek dál používat. Přepsání adresy URL umožňuje transparentně předávat požadavky na nové umístění stránky.

Pokud chcete povolit, aby web používal adresy URL, které jsou uživatelsky přívětivější a jsou optimalizované pro vyhledávací weby, je robustnější alternativou použití ASP.NET směrování. Další informace najdete v tématu ASP.NET Směrování.

Viz také

Platí pro

RewritePath(String, String, String)

Přepíše adresu URL pomocí dané cesty, informací o cestě a informací o řetězci dotazu.

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)

Parametry

filePath
String

Cesta k internímu přepsání.

pathInfo
String

Další informace o cestě pro prostředek Další informace naleznete v tématu PathInfo.

queryString
String

Řetězec dotazu požadavku.

Výjimky

Parametr path není v kořenovém adresáři aktuální aplikace.

Parametr filePath není v kořenovém adresáři aktuální aplikace.

Příklady

Příklad kódu, včetně příkladu tohoto přetížení metody, viz RewritePath(String) přetížení metody.

Poznámky

Metoda RewritePath přesměruje požadavek na prostředek na jiný prostředek beze změny adresy URL.

Parametr filePath neobsahuje obsah parametru pathInfo . Pro adresu URL http://www.microsoft.com/virdir/page.html/tailje filePath http://www.microsoft.com/virdir/page.htmlparametr a pathInfo parametr je tail.

Přepsání adresy URL je užitečné, když chcete změnit strukturu stránek ve webové aplikaci a chcete zajistit, aby je uživatelé, kteří mají staré adresy URL se záložkou, mohli po přesunutí stránek dál používat. Přepis adresy URL umožňuje transparentně předávat požadavky na nové umístění stránky.

Pokud chcete webu povolit používání adres URL, které jsou uživatelsky přívětivější a jsou optimalizované pro vyhledávací weby, robustnější alternativou je použití směrování ASP.NET. Další informace najdete v tématu ASP.NET Směrování.

Viz také

Platí pro

RewritePath(String, Boolean)

Přepíše adresu URL pomocí dané cesty a logické hodnoty, která určuje, jestli se změní virtuální cesta pro prostředky serveru.

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)

Parametry

path
String

Cesta k internímu přepsání.

rebaseClientPath
Boolean

true k resetování virtuální cesty; false zachovat virtuální cestu beze změny.

Výjimky

Parametr path je null.

Parametr path není v kořenovém adresáři aktuální aplikace.

Příklady

Příklad kódu najdete v RewritePath(String) přetížení metody.

Poznámky

Metoda HttpContext.RewritePath(String, Boolean) je volána metodou HttpContext.RewritePath(String) s parametrem rebaseClientPath nastaveným na true. Chcete-li zajistit, aby virtuální cesta používaná k vytváření cest k prostředkům nebyla změněna, nastavte rebaseClientPath parametr na false. Běžný scénář, ve kterém můžete chtít nastavit rebaseClientPath false , je, když potřebujete přepsat adresu URL a používáte motivy a přesměrováváte adresu URL na prostředek umístěný v jiné složce, než je požadovaný prostředek.

Přepsání adresy URL je užitečné, když chcete změnit strukturu stránek ve webové aplikaci a chcete zajistit, aby je uživatelé, kteří mají staré adresy URL se záložkou, mohli po přesunutí stránek dál používat. Přepis adresy URL umožňuje transparentně předávat požadavky na nové umístění stránky.

Pokud chcete webu povolit používání adres URL, které jsou uživatelsky přívětivější a jsou optimalizované pro vyhledávací weby, robustnější alternativou je použití směrování ASP.NET. Další informace najdete v tématu ASP.NET Směrování.

Viz také

Platí pro

RewritePath(String)

Přepíše adresu URL pomocí dané cesty.

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

Parametry

path
String

Cesta k internímu přepsání.

Výjimky

Parametr path je null.

Parametr path není v kořenovém adresáři aktuální aplikace.

Příklady

Následující příklad ukazuje, jak pomocí RewritePath metody povolit webu reagovat na adresy URL, které neodráží strukturu souborů na webu. První blok kódu je ASP.NET webová stránka s názvem RewritePath.aspx. Vyžaduje řetězec dotazu. Pokud je název vašeho webu WebSite1, adresa URL http://localhost/WebSite1/RewritePath.aspx?page=1 zobrazí v prohlížeči stránku 1. Blok kódu, který následuje za webovou stránkou, je Application_BeginRequest obslužná rutina události v souboru Global.asax. Tento kód zachytí požadavky na adresy URL, jako je například http://localhost/WebSite1/page1 a převede je na formulář, který je vyžadován pro přepsáníPath.aspx před jejich zpracováním. Proto adresa URL http://localhost/WebSite1/page1 vyvolá RewritePath.aspx s parametrem řetězce dotazu, který v prohlížeči zobrazí "Stránka 1". Pokud je přijata adresa http://localhost/WebSite1/page1 URL, vyvolá se přetížení RewritePath , které umožňuje zadat hodnotu vlastnosti PathInfo a také parametr řetězce dotazu.

<%@ 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

Poznámky

Metoda RewritePath(String) přesměruje požadavek na prostředek na jinou cestu než požadavek, který je označen požadovanou adresou URL. Pokud musíte resetovat virtuální cestu tak, aby požadavky z klienta pro prostředky serveru správně přeložily, použijte přetížení této metody, která přebírá rebaseClientPath parametr a nastaví parametr na false.

Přepsání adresy URL je užitečné, když chcete změnit strukturu stránek ve webové aplikaci a chcete zajistit, aby je uživatelé, kteří mají staré adresy URL se záložkou, mohli po přesunutí stránek dál používat. Přepis adresy URL umožňuje transparentně předávat požadavky na nové umístění stránky.

Pokud chcete webu povolit používání adres URL, které jsou uživatelsky přívětivější a jsou optimalizované pro vyhledávací weby, robustnější alternativou je použití směrování ASP.NET. Další informace najdete v tématu ASP.NET Směrování.

Viz také

Platí pro