HttpContext.RewritePath Método

Definição

Redireciona um pedido de recurso para um caminho diferente daquele indicado pela URL solicitada. RewritePath é usado no estado de sessão sem cookies para remover IDs de sessão dos URLs.

Sobrecargas

Name Description
RewritePath(String, String, String, Boolean)

Reescreve a URL usando o caminho virtual dado, informação do caminho, informação da cadeia de consulta e um valor booleano que especifica se o caminho do ficheiro cliente está definido para o caminho de reescrita.

RewritePath(String, String, String)

Reescreve a URL usando o caminho, a informação do caminho e a informação da cadeia de consulta dadas.

RewritePath(String, Boolean)

Reescreve a URL usando o caminho dado e um valor booleano que especifica se o caminho virtual para recursos do servidor está modificado.

RewritePath(String)

Reescreve a URL usando o caminho indicado.

RewritePath(String, String, String, Boolean)

Reescreve a URL usando o caminho virtual dado, informação do caminho, informação da cadeia de consulta e um valor booleano que especifica se o caminho do ficheiro cliente está definido para o caminho de reescrita.

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)

Parâmetros

filePath
String

O caminho virtual para o recurso que serve o pedido.

pathInfo
String

Informação adicional do caminho para usar no redirecionamento de URL. Para obter mais informações, veja PathInfo.

queryString
String

A cadeia de consulta de pedido a usar para o redirecionamento de URL.

setClientFilePath
Boolean

true definir o caminho do ficheiro usado para os recursos do cliente para o valor do filePath parâmetro; caso contrário false.

Exceções

O path parâmetro não está no diretório raiz da aplicação atual.

O filePath parâmetro não está no diretório raiz da aplicação atual.

Exemplos

Para um exemplo de código, veja a RewritePath(String) sobrecarga de métodos.

Observações

O filePath parâmetro não inclui o conteúdo do pathInfo parâmetro. Para a URL http://www.microsoft.com/virdir/page.html/tail, o filePath parâmetro é http://www.microsoft.com/virdir/page.html, e o pathInfo parâmetro é cauda.

Para garantir que o caminho virtual usado para construir caminhos para recursos não é modificado, defina o setClientFilePath parâmetro para false. Um cenário comum em que podes querer definir setClientFilePath para false é quando precisas de reescrever a URL, estás a usar temas e a redirecionar a URL para um recurso localizado numa pasta diferente da solicitada.

A reescrita de URLs é útil quando quer reestruturar as páginas na sua aplicação Web, e quer garantir que as pessoas que marcaram URLs antigas ainda possam usá-las depois de mudar as páginas. A reescrita de URL permite-lhe encaminhar os pedidos de forma transparente para a nova localização da página.

Se quiser permitir que um site use URLs mais fáceis de usar e otimizadas para motores de busca, uma alternativa mais robusta é usar o encaminhamento ASP.NET. Para mais informações, consulte ASP.NET Roteamento.

Ver também

Aplica-se a

RewritePath(String, String, String)

Reescreve a URL usando o caminho, a informação do caminho e a informação da cadeia de consulta dadas.

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)

Parâmetros

filePath
String

O caminho de reescrita interna.

pathInfo
String

Informação adicional sobre o percurso para um recurso. Para obter mais informações, veja PathInfo.

queryString
String

A cadeia de consulta de pedidos.

Exceções

O path parâmetro não está no diretório raiz da aplicação atual.

O filePath parâmetro não está no diretório raiz da aplicação atual.

Exemplos

Para um exemplo de código, incluindo um exemplo desta sobrecarga de método, veja sobrecarga RewritePath(String) de método.

Observações

O RewritePath método redireciona um pedido de recurso para outro recurso sem alterar a URL.

O filePath parâmetro não inclui o conteúdo do pathInfo parâmetro. Para a URL http://www.microsoft.com/virdir/page.html/tail, o filePath parâmetro é http://www.microsoft.com/virdir/page.html, e o pathInfo parâmetro é cauda.

A reescrita de URLs é útil quando quer reestruturar as páginas na sua aplicação Web, e quer garantir que as pessoas que marcaram URLs antigas ainda possam usá-las depois de mudar as páginas. A reescrita de URL permite-lhe encaminhar os pedidos de forma transparente para a nova localização da página.

Se quiser permitir que um site use URLs mais fáceis de usar e otimizadas para motores de busca, uma alternativa mais robusta é usar o encaminhamento ASP.NET. Para mais informações, consulte ASP.NET Roteamento.

Ver também

Aplica-se a

RewritePath(String, Boolean)

Reescreve a URL usando o caminho dado e um valor booleano que especifica se o caminho virtual para recursos do servidor está modificado.

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)

Parâmetros

path
String

O caminho de reescrita interna.

rebaseClientPath
Boolean

true para reiniciar o caminho virtual; false para manter o caminho virtual inalterado.

Exceções

O path parâmetro é null.

O path parâmetro não está no diretório raiz da aplicação atual.

Exemplos

Para um exemplo de código, veja a RewritePath(String) sobrecarga de métodos.

Observações

O HttpContext.RewritePath(String, Boolean) método é chamado pelo HttpContext.RewritePath(String) método com o rebaseClientPath parâmetro definido como true. Para garantir que o caminho virtual usado para construir caminhos para recursos não é modificado, defina o rebaseClientPath parâmetro para false. Um cenário comum em que podes querer definir rebaseClientPath para false é quando precisas de reescrever a URL, estás a usar temas e a redirecionar a URL para um recurso localizado numa pasta diferente da solicitada.

A reescrita de URLs é útil quando quer reestruturar as páginas na sua aplicação Web, e quer garantir que as pessoas que marcaram URLs antigas ainda possam usá-las depois de mudar as páginas. A reescrita de URL permite-lhe encaminhar os pedidos de forma transparente para a nova localização da página.

Se quiser permitir que um site use URLs mais fáceis de usar e otimizadas para motores de busca, uma alternativa mais robusta é usar o encaminhamento ASP.NET. Para mais informações, consulte ASP.NET Roteamento.

Ver também

Aplica-se a

RewritePath(String)

Reescreve a URL usando o caminho indicado.

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

Parâmetros

path
String

O caminho de reescrita interna.

Exceções

O path parâmetro é null.

O path parâmetro não está no diretório raiz da aplicação atual.

Exemplos

O exemplo seguinte mostra como usar o RewritePath método para permitir que um site responda a URLs que não refletem a estrutura do ficheiro no site. O primeiro bloco de código é uma página web ASP.NET chamada RewritePath.aspx. Requer uma cadeia de consulta. Se o nome do seu site for WebSite1, o URL http://localhost/WebSite1/RewritePath.aspx?page=1 mostra "Página 1" no navegador. O bloco de código que segue a página Web é o Application_BeginRequest gestor de eventos no ficheiro Global.asax. Este código intercepta pedidos de URLs como http://localhost/WebSite1/page1 e converte-os para o formulário exigido para RewritePath.aspx antes de serem processados. Assim, a URL http://localhost/WebSite1/page1 invoca RewritePath.aspx com o parâmetro de sequência de consulta que mostra a "Página 1" no navegador. Se uma URL como http://localhost/WebSite1/page1 for recebida, é invocada uma sobrecarga de RewritePath que permite fornecer um valor para a PathInfo propriedade, bem como um parâmetro de string de consulta.

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

Observações

O RewritePath(String) método redireciona um pedido de recurso para um caminho diferente daquele indicado pela URL solicitada. Se tiver de reiniciar o caminho virtual para que os pedidos do cliente para recursos do servidor sejam resolvidos corretamente, use a sobrecarga deste método que pega no rebaseClientPath parâmetro e define o parâmetro para false.

A reescrita de URLs é útil quando quer reestruturar as páginas na sua aplicação Web, e quer garantir que as pessoas que marcaram URLs antigas ainda possam usá-las depois de mudar as páginas. A reescrita de URL permite-lhe encaminhar os pedidos de forma transparente para a nova localização da página.

Se quiser permitir que um site use URLs mais fáceis de usar e otimizadas para motores de busca, uma alternativa mais robusta é usar o encaminhamento ASP.NET. Para mais informações, consulte ASP.NET Roteamento.

Ver também

Aplica-se a