HttpContext.RewritePath Metoda

Definice

Přesměruje požadavek na prostředek na jinou cestu, než je ta, která je označena požadovanou adresou URL.Redirects a request for a resource to a different path than the one that is indicated by the requested URL. RewritePath se používá ve stavu relace bez souborů cookie k odložení ID relací z adres URL.RewritePath is used in cookieless session state to strip session IDs from URLs.

Přetížení

RewritePath(String, String, String, Boolean)

Přepíše adresu URL pomocí dané virtuální cesty, informace o cestě, informace o řetězci dotazu a logickou hodnotu, která určuje, zda je cesta k souboru klienta nastavena na cestu pro přepsání.Rewrites the URL using the given virtual path, path information, query string information, and a Boolean value that specifies whether the client file path is set to the rewrite path.

RewritePath(String, String, String)

Přepíše adresu URL pomocí dané cesty, informace o cestě a informací o řetězci dotazu.Rewrites the URL by using the given path, path information, and query string information.

RewritePath(String, Boolean)

Přepíše adresu URL pomocí dané cesty a logické hodnoty, která určuje, zda je upravena virtuální cesta k prostředkům serveru.Rewrites the URL using the given path and a Boolean value that specifies whether the virtual path for server resources is modified.

RewritePath(String)

Přepíše adresu URL pomocí dané cesty.Rewrites the URL using the given path.

RewritePath(String, String, String, Boolean)

Přepíše adresu URL pomocí dané virtuální cesty, informace o cestě, informace o řetězci dotazu a logickou hodnotu, která určuje, zda je cesta k souboru klienta nastavena na cestu pro přepsání.Rewrites the URL using the given virtual path, path information, query string information, and a Boolean value that specifies whether the client file path is set to the rewrite path.

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ý službu požaduje.The virtual path to the resource that services the request.

pathInfo
String

Další informace o cestě, která se má použít pro přesměrování adresy URLAdditional path information to use for the URL redirect. Další informace naleznete v tématu PathInfo.For more information, see PathInfo.

queryString
String

Řetězec dotazu žádosti, který se má použít pro přesměrování adresy URLThe request query string to use for the URL redirect.

setClientFilePath
Boolean

true pro nastavení cesty k souboru, který se používá pro prostředky klienta, na hodnotu filePath parametru. v opačném případě false .true to set the file path used for client resources to the value of the filePath parameter; otherwise false.

Výjimky

pathParametr není v kořenovém adresáři aktuální aplikace.The path parameter is not in the current application's root directory.

filePathParametr není v kořenovém adresáři aktuální aplikace.The filePath parameter is not in the current application's root directory.

Příklady

Příklad kódu naleznete v tématu RewritePath(String) přetížení metody.For a code example, see the RewritePath(String) method overload.

Poznámky

filePathParametr nezahrnuje obsah pathInfo parametru.The filePath parameter does not include the content of the pathInfo parameter. Pro adresu URL je http://www.microsoft.com/virdir/page.html/tail filePath parametr http://www.microsoft.com/virdir/page.html a pathInfo parametr je tail.For the URL http://www.microsoft.com/virdir/page.html/tail, the filePath parameter is http://www.microsoft.com/virdir/page.html, and the pathInfo parameter is tail.

Aby se zajistilo, že se virtuální cesta, která se používá k vytváření cest k prostředkům, nemění, nastavte setClientFilePath parametr na false .To ensure that the virtual path that is used to construct paths to resources is not modified, set the setClientFilePath parameter to false. Běžný scénář, ve kterém byste mohli chtít nastavit setClientFilePath false , je, že pokud 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.A common scenario in which you might want to set setClientFilePath to false is when you need to rewrite the URL, and you are using themes and redirecting the URL to a resource located in a different folder than the requested resource.

Přepsání adresy URL je užitečné v případě, že chcete restrukturovat stránky ve webové aplikaci a chcete zajistit, aby uživatelé, kteří mají staré adresy URL, mohli je dál používat i po přesunutí stránek.URL rewriting is useful when you want to restructure the pages in your Web application, and you want to make sure that people who have bookmarked old URLs can still use them after you have moved pages. Přepsání adresy URL umožňuje transparentní přeposílání požadavků na nové umístění stránky.URL rewriting enables you to transparently forward requests to the new page location.

Pokud chcete, aby lokalita mohla používat adresy URL, které jsou uživatelsky přívětivější a optimalizované pro vyhledávací weby, je použití směrování ASP.NET robustnější.If you want to enable a site to use URLs that are more user-friendly and are optimized for search engines, a more robust alternative is to use ASP.NET routing. Další informace najdete v tématu věnovaném směrování ASP.NET.For more information, see ASP.NET Routing.

Platí pro

RewritePath(String, String, String)

Přepíše adresu URL pomocí dané cesty, informace o cestě a informací o řetězci dotazu.Rewrites the URL by using the given path, path information, and query string information.

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

Interní cesta pro přepsání.The internal rewrite path.

pathInfo
String

Další informace o cestě k prostředkuAdditional path information for a resource. Další informace naleznete v tématu PathInfo.For more information, see PathInfo.

queryString
String

Řetězec dotazu požadavku.The request query string.

Výjimky

pathParametr není v kořenovém adresáři aktuální aplikace.The path parameter is not in the current application's root directory.

filePathParametr není v kořenovém adresáři aktuální aplikace.The filePath parameter is not in the current application's root directory.

Příklady

Příklad kódu, včetně příkladu tohoto přetížení metody, naleznete v tématu RewritePath(String) přetížení metody.For a code example, including an example of this method overload, see the RewritePath(String) method overload.

Poznámky

RewritePathMetoda přesměrovává požadavek na prostředek na jiný prostředek beze změny adresy URL.The RewritePath method redirects a request for a resource to another resource without changing the URL.

filePathParametr nezahrnuje pathInfo obsah parametru.The filePath parameter does not include the pathInfo parameter content. Pro adresu URL je http://www.microsoft.com/virdir/page.html/tail filePath parametr http://www.microsoft.com/virdir/page.html a pathInfo parametr je tail.For the URL http://www.microsoft.com/virdir/page.html/tail, the filePath parameter is http://www.microsoft.com/virdir/page.html, and the pathInfo parameter is tail.

Přepsání adresy URL je užitečné v případě, že chcete restrukturovat stránky ve webové aplikaci a chcete zajistit, aby uživatelé, kteří mají staré adresy URL, mohli je dál používat i po přesunutí stránek.URL rewriting is useful when you want to restructure the pages in your Web application, and you want to make sure that people who have bookmarked old URLs can still use them after you have moved pages. Přepsání adresy URL umožňuje transparentní přeposílání požadavků na nové umístění stránky.URL rewriting enables you to transparently forward requests to the new page location.

Pokud chcete, aby lokalita mohla používat adresy URL, které jsou uživatelsky přívětivější a optimalizované pro vyhledávací weby, je použití směrování ASP.NET robustnější.If you want to enable a site to use URLs that are more user-friendly and are optimized for search engines, a more robust alternative is to use ASP.NET routing. Další informace najdete v tématu věnovaném směrování ASP.NET.For more information, see ASP.NET Routing.

Platí pro

RewritePath(String, Boolean)

Přepíše adresu URL pomocí dané cesty a logické hodnoty, která určuje, zda je upravena virtuální cesta k prostředkům serveru.Rewrites the URL using the given path and a Boolean value that specifies whether the virtual path for server resources is modified.

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

Interní cesta pro přepsání.The internal rewrite path.

rebaseClientPath
Boolean

true resetování virtuální cesty; false zachovat virtuální cestu beze změny.true to reset the virtual path; false to keep the virtual path unchanged.

Výjimky

pathParametr je null .The path parameter is null.

pathParametr není v kořenovém adresáři aktuální aplikace.The path parameter is not in the current application's root directory.

Příklady

Příklad kódu naleznete v tématu RewritePath(String) přetížení metody.For a code example, see the RewritePath(String) method overload.

Poznámky

HttpContext.RewritePath(String, Boolean)Metoda je volána HttpContext.RewritePath(String) metodou s rebaseClientPath parametrem nastaveným na true .The HttpContext.RewritePath(String, Boolean) method is called by the HttpContext.RewritePath(String) method with the rebaseClientPath parameter set to true. Aby se zajistilo, že se virtuální cesta, která se používá k vytváření cest k prostředkům, nemění, nastavte rebaseClientPath parametr na false .To ensure that the virtual path that is used to construct paths to resources is not modified, set the rebaseClientPath parameter to false. Běžný scénář, ve kterém byste mohli chtít nastavit rebaseClientPath false , je, že pokud 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.A common scenario in which you might want to set rebaseClientPath to false is when you need to rewrite the URL, and you are using themes and redirecting the URL to a resource located in a different folder than the requested resource.

Přepsání adresy URL je užitečné v případě, že chcete restrukturovat stránky ve webové aplikaci a chcete zajistit, aby uživatelé, kteří mají staré adresy URL, mohli je dál používat i po přesunutí stránek.URL rewriting is useful when you want to restructure the pages in your Web application, and you want to make sure that people who have bookmarked old URLs can still use them after you have moved pages. Přepsání adresy URL umožňuje transparentní přeposílání požadavků na nové umístění stránky.URL rewriting enables you to transparently forward requests to the new page location.

Pokud chcete, aby lokalita mohla používat adresy URL, které jsou uživatelsky přívětivější a optimalizované pro vyhledávací weby, je použití směrování ASP.NET robustnější.If you want to enable a site to use URLs that are more user-friendly and are optimized for search engines, a more robust alternative is to use ASP.NET routing. Další informace najdete v tématu věnovaném směrování ASP.NET.For more information, see ASP.NET Routing.

Platí pro

RewritePath(String)

Přepíše adresu URL pomocí dané cesty.Rewrites the URL using the given path.

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

Interní cesta pro přepsání.The internal rewrite path.

Výjimky

pathParametr je null .The path parameter is null.

pathParametr není v kořenovém adresáři aktuální aplikace.The path parameter is not in the current application's root directory.

Příklady

Následující příklad ukazuje, jak použít RewritePath metodu k povolení reakce webu na adresy URL, které neodpovídají struktuře souborů na webu.The following example shows how to use the RewritePath method to enable a Web site to respond to URLs that do not reflect the file structure in the Web site. Prvním blokem kódu je webová stránka ASP.NET s názvem RewritePath. aspx.The first block of code is an ASP.NET Web page that is named RewritePath.aspx. Vyžaduje řetězec dotazu.It requires a query string. Pokud je název vašeho webu WEB1, adresa URL http://localhost/WebSite1/RewritePath.aspx?page=1 zobrazí v prohlížeči "stránku 1".If the name of your site is WebSite1, the URL http://localhost/WebSite1/RewritePath.aspx?page=1 displays "Page 1" in the browser. Blok kódu, který následuje za webovou stránkou, je Application_BeginRequest obslužná rutina události v souboru Global. asax.The block of code that follows the Web page is the Application_BeginRequest event handler in the Global.asax file. Tento kód zachycuje požadavky na adresy URL, jako je, http://localhost/WebSite1/page1 a převede je na formulář, který je požadován pro RewritePath. aspx před jejich zpracováním.This code intercepts requests for URLs such as http://localhost/WebSite1/page1 and converts them to the form that is required for RewritePath.aspx before they are processed. Proto adresa URL http://localhost/WebSite1/page1 vyvolá RewritePath. aspx s parametrem řetězce dotazu, který v prohlížeči zobrazí "Stránka 1".Therefore, the URL http://localhost/WebSite1/page1 invokes RewritePath.aspx with the query-string parameter that displays "Page 1" in the browser. Pokud adresa URL jako http://localhost/WebSite1/page1 je přijata, RewritePath je vyvoláno přetížení, které umožňuje zadat hodnotu PathInfo vlastnosti i parametr řetězce dotazu.If a URL such as http://localhost/WebSite1/page1 is received, an overload of RewritePath is invoked that enables you to provide a value for the PathInfo property as well as a query string parameter.

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

RewritePath(String)Metoda přesměruje požadavek na prostředek na jinou cestu, než je ta, která je označena požadovanou adresou URL.The RewritePath(String) method redirects a request for a resource to a different path than the one that is indicated by the requested URL. Pokud je nutné resetovat virtuální cestu tak, aby byly požadavky klienta na prostředky serveru správně přeloženy, použijte přetížení této metody, které převezme rebaseClientPath parametr a nastavte parametr na false .If you have to reset the virtual path so that requests from the client for server resources resolve correctly, use the overload of this method that takes the rebaseClientPath parameter and set the parameter to false.

Přepsání adresy URL je užitečné v případě, že chcete restrukturovat stránky ve webové aplikaci a chcete zajistit, aby uživatelé, kteří mají staré adresy URL, mohli je dál používat i po přesunutí stránek.URL rewriting is useful when you want to restructure the pages in your Web application, and you want to make sure that people who have bookmarked old URLs can still use them after you have moved pages. Přepsání adresy URL umožňuje transparentní přeposílání požadavků na nové umístění stránky.URL rewriting enables you to transparently forward requests to the new page location.

Pokud chcete, aby lokalita mohla používat adresy URL, které jsou uživatelsky přívětivější a optimalizované pro vyhledávací weby, je použití směrování ASP.NET robustnější.If you want to enable a site to use URLs that are more user-friendly and are optimized for search engines, a more robust alternative is to use ASP.NET routing. Další informace najdete v tématu věnovaném směrování ASP.NET.For more information, see ASP.NET Routing.

Platí pro