HttpContext.RewritePath Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přesměruje požadavek na 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í
| Name | Description |
|---|---|
| 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, zda je virtuální cesta pro prostředky serveru upravena. |
| 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 najdete na webu 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ého 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 naleznete 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/tailfilePath je http://www.microsoft.com/virdir/page.htmlparametr a pathInfo parametr je tail.
Chcete-li zajistit, aby virtuální cesta použitá k vytvoř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 setClientFilePathfalse , 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ž 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 mít jistotu, že lidé, kteří mají záložky starých adres URL, je budou moct 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 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, 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
Vnitřní cesta k přepsání.
- 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 přetížení této 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/tailfilePath je 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 mít jistotu, že lidé, kteří mají záložky starých adres URL, je budou moct 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 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, zda je virtuální cesta pro prostředky serveru upravena.
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
Vnitřní cesta k přepsání.
- rebaseClientPath
- Boolean
true 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 naleznete v RewritePath(String) přetížení metody.
Poznámky
Metoda HttpContext.RewritePath(String, Boolean) je volána HttpContext.RewritePath(String) metodou s parametrem nastaveným rebaseClientPath na true. Chcete-li zajistit, aby virtuální cesta použitá k vytvoř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 rebaseClientPathfalse , 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ž 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 mít jistotu, že lidé, kteří mají záložky starých adres URL, je budou moct 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 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
Vnitřní cesta k 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ím blokem kódu je webová stránka ASP.NET s názvem RewritePath.aspx. Vyžaduje řetězec dotazu. Pokud je název vašeho webu WebSite1, zobrazí se v prohlížeči adresa URL http://localhost/WebSite1/RewritePath.aspx?page=1 Stránka 1. Blok kódu, který následuje za webovou stránkou, je obslužná Application_BeginRequest rutina události v souboru Global.asax. Tento kód zachytí požadavky na adresy URL, jako jsou adresy URL, a http://localhost/WebSite1/page1 převede je na formulář požadovaný pro RewritePath.aspx před zpracováním. Proto adresa URL http://localhost/WebSite1/page1 vyvolá RewritePath.aspx s parametrem řetězce dotazu, který v prohlížeči zobrazí "Strana 1". Pokud je adresa URL, jako http://localhost/WebSite1/page1 je přijatá, 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ž je ta, která je označená požadovanou adresou URL. Pokud je nutné 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 mít jistotu, že lidé, kteří mají záložky starých adres URL, je budou moct 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 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í.