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ž je cesta, která je označená požadovanou adresou URL. RewritePath se používá ve stavu relace bez souborů cookie k odebrá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 pro přepis. |
RewritePath(String, String, String) |
Přepíše adresu URL pomocí zadané 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 k prostředkům 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 pro přepis.
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ý obsluhuje požadavek.
- 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
a nastavte cestu k souboru používanou pro klientské prostředky na hodnotu parametru filePath
. V opačném případě 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/tail
filePath
je http://www.microsoft.com/virdir/page.html
parametr a pathInfo
parametr je tail.
Pokud chcete zajistit, aby se nezměnila virtuální cesta použitá k vytváření cest k prostředkům setClientFilePath
, nastavte parametr na false
hodnotu . Běžným scénářem, ve kterém můžete chtít nastavit setClientFilePath
false
, je, že 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 uživatelé, kteří mají staré adresy URL se záložkou, je mohli používat i po přesunutí stránek. Přepsání adresy URL umožňuje transparentně předávat požadavky do nového umístění stránky.
Pokud chcete webu povolit používání adres URL, které jsou uživatelsky přívětivější a optimalizované pro vyhledávací weby, robustnější alternativou je použít ASP.NET směrování. Další informace najdete v tématu směrování ASP.NET.
Viz také
Platí pro
RewritePath(String, String, String)
Přepíše adresu URL pomocí zadané 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 interního přepisu.
- 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, najdete v RewritePath(String) tématu 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/tail
filePath
je http://www.microsoft.com/virdir/page.html
parametr 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 uživatelé, kteří mají staré adresy URL se záložkou, je mohli používat i po přesunutí stránek. Přepsání adresy URL umožňuje transparentně předávat požadavky do nového umístění stránky.
Pokud chcete webu povolit používání adres URL, které jsou uživatelsky přívětivější a optimalizované pro vyhledávací weby, robustnější alternativou je použít ASP.NET směrování. Další informace najdete v tématu směrování ASP.NET.
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 k prostředkům 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 interního přepisu.
- rebaseClientPath
- Boolean
true
resetovat virtuální cestu; 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 nastaveným rebaseClientPath
na true
. Pokud chcete zajistit, aby se nezměnila virtuální cesta použitá k vytváření cest k prostředkům rebaseClientPath
, nastavte parametr na false
hodnotu . Běžným scénářem, ve kterém můžete chtít nastavit rebaseClientPath
false
, je, že 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 uživatelé, kteří mají staré adresy URL se záložkou, je mohli používat i po přesunutí stránek. Přepsání adresy URL umožňuje transparentně předávat požadavky do nového umístění stránky.
Pokud chcete webu povolit používání adres URL, které jsou uživatelsky přívětivější a optimalizované pro vyhledávací weby, robustnější alternativou je použít ASP.NET směrování. Další informace najdete v tématu směrování ASP.NET.
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 interního přepisu.
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 webová stránka ASP.NET s názvem RewritePath.aspx. Vyžaduje řetězec dotazu. Pokud je název vašeho webu WebSite1, zobrazí adresa URL http://localhost/WebSite1/RewritePath.aspx?page=1
v prohlížeči "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ává požadavky na adresy URL, jako http://localhost/WebSite1/page1
jsou, a převede je do formuláře, který se vyžaduje pro RewritePath.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 adresa URL přijata http://localhost/WebSite1/page1
, je vyvolána přetížení RewritePath , které vám umožní zadat hodnotu vlastnosti PathInfo a 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 cesta označená požadovanou adresou URL. Pokud potřebujete resetovat virtuální cestu tak, aby se požadavky klienta na serverové prostředky správně přeložily, použijte přetížení této metody, která přebírá rebaseClientPath
parametr, a nastavte 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 uživatelé, kteří mají staré adresy URL se záložkou, je mohli používat i po přesunutí stránek. Přepsání adresy URL umožňuje transparentně předávat požadavky do nového umístění stránky.
Pokud chcete webu povolit používání adres URL, které jsou uživatelsky přívětivější a optimalizované pro vyhledávací weby, robustnější alternativou je použít ASP.NET směrování. Další informace najdete v tématu směrování ASP.NET.