Partilhar via


HttpContext.RewritePath Método

Definição

Redireciona uma solicitação para um recurso para um caminho diferente daquele indicado pela URL solicitada. RewritePath é usado no estado de sessão sem cookies para retirar as IDs de sessão das URLs.

Sobrecargas

RewritePath(String, String, String, Boolean)

Regrava a URL usando o caminho virtual fornecido, informações de caminho, informações de cadeia de caracteres de consulta e um valor booliano que especifica se o caminho do arquivo de cliente é definido como o caminho de regravação.

RewritePath(String, String, String)

Regrava a URL usando o caminho, as informações de caminho e as informações de cadeia de caracteres de consulta especificados.

RewritePath(String, Boolean)

Regrava a URL usando o caminho especificado e um valor booliano que especifica se o caminho virtual para recursos de servidor é modificado.

RewritePath(String)

Regrava a URL usando o caminho fornecido.

RewritePath(String, String, String, Boolean)

Regrava a URL usando o caminho virtual fornecido, informações de caminho, informações de cadeia de caracteres de consulta e um valor booliano que especifica se o caminho do arquivo de cliente é definido como o caminho de regravação.

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 atende à solicitação.

pathInfo
String

Informações adicionais sobre o caminho a ser usado para o redirecionamento de URL. Para obter mais informações, consulte PathInfo.

queryString
String

A cadeia de caracteres de consulta de solicitação a ser usada para o redirecionamento de URL.

setClientFilePath
Boolean

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

Exceções

O parâmetro path não está no diretório raiz do aplicativo atual.

O parâmetro filePath não está no diretório raiz do aplicativo atual.

Exemplos

Para obter um exemplo de código, consulte a sobrecarga de RewritePath(String) método.

Comentários

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.htmle o pathInfo parâmetro é tail.

Para garantir que o caminho virtual usado para construir caminhos para recursos não seja modificado, defina o setClientFilePath parâmetro como false. Um cenário comum no qual você pode querer definir setClientFilePathfalse como é quando você precisa reescrever a URL, e você está usando temas e redirecionando a URL para um recurso localizado em uma pasta diferente do recurso solicitado.

A reescrita de URL é útil quando você deseja reestruturar as páginas em seu aplicativo Web e deseja garantir que as pessoas que marcaram URLs antigas ainda possam usá-las depois que você tiver movido páginas. A reescrita de URL permite que você encaminhe solicitações de forma transparente para o novo local da página.

Se você quiser habilitar um site para usar URLs mais amigáveis e otimizadas para mecanismos de pesquisa, uma alternativa mais robusta é usar ASP.NET roteamento. Para obter mais informações, consulte Roteamento ASP.NET.

Confira também

Aplica-se a

RewritePath(String, String, String)

Regrava a URL usando o caminho, as informações de caminho e as informações de cadeia de caracteres de consulta especificados.

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 regravação interno.

pathInfo
String

Informações adicionais de caminho para um recurso. Para obter mais informações, consulte PathInfo.

queryString
String

A cadeia de caracteres de consulta da solicitação.

Exceções

O parâmetro path não está no diretório raiz do aplicativo atual.

O parâmetro filePath não está no diretório raiz do aplicativo atual.

Exemplos

Para obter um exemplo de código, incluindo um exemplo dessa sobrecarga de método, consulte a sobrecarga do RewritePath(String) método.

Comentários

O RewritePath método redireciona uma solicitação de um 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.htmle o pathInfo parâmetro é tail.

A reescrita de URL é útil quando você deseja reestruturar as páginas em seu aplicativo Web e deseja garantir que as pessoas que marcaram URLs antigas ainda possam usá-las depois que você tiver movido páginas. A reescrita de URL permite que você encaminhe solicitações de forma transparente para o novo local da página.

Se você quiser habilitar um site para usar URLs mais amigáveis e otimizadas para mecanismos de pesquisa, uma alternativa mais robusta é usar ASP.NET roteamento. Para obter mais informações, consulte Roteamento ASP.NET.

Confira também

Aplica-se a

RewritePath(String, Boolean)

Regrava a URL usando o caminho especificado e um valor booliano que especifica se o caminho virtual para recursos de servidor é 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 regravação interno.

rebaseClientPath
Boolean

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

Exceções

O parâmetro path é null.

O parâmetro path não está no diretório raiz do aplicativo atual.

Exemplos

Para obter um exemplo de código, consulte a sobrecarga de RewritePath(String) método.

Comentários

O HttpContext.RewritePath(String, Boolean) método é chamado pelo HttpContext.RewritePath(String) método com o rebaseClientPath parâmetro definido truecomo . Para garantir que o caminho virtual usado para construir caminhos para recursos não seja modificado, defina o rebaseClientPath parâmetro como false. Um cenário comum no qual você pode querer definir rebaseClientPathfalse como é quando você precisa reescrever a URL, e você está usando temas e redirecionando a URL para um recurso localizado em uma pasta diferente do recurso solicitado.

A reescrita de URL é útil quando você deseja reestruturar as páginas em seu aplicativo Web e deseja garantir que as pessoas que marcaram URLs antigas ainda possam usá-las depois que você tiver movido páginas. A reescrita de URL permite que você encaminhe solicitações de forma transparente para o novo local da página.

Se você quiser habilitar um site para usar URLs mais amigáveis e otimizadas para mecanismos de pesquisa, uma alternativa mais robusta é usar ASP.NET roteamento. Para obter mais informações, consulte Roteamento ASP.NET.

Confira também

Aplica-se a

RewritePath(String)

Regrava a URL usando o caminho fornecido.

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 regravação interno.

Exceções

O parâmetro path é null.

O parâmetro path não está no diretório raiz do aplicativo atual.

Exemplos

O exemplo a seguir mostra como usar o RewritePath método para permitir que um site responda a URLs que não refletem a estrutura de arquivos no site. O primeiro bloco de código é uma página da Web ASP.NET chamada RewritePath.aspx. Ele requer uma cadeia de caracteres de consulta. Se o nome do seu site for WebSite1, a URL http://localhost/WebSite1/RewritePath.aspx?page=1 exibirá "Página 1" no navegador. O bloco de código que segue a página da Web é o Application_BeginRequest manipulador de eventos no arquivo Global.asax. Esse código intercepta solicitações de URLs como http://localhost/WebSite1/page1 e as converte no formulário necessário para RewritePath.aspx antes de serem processadas. Portanto, a URL http://localhost/WebSite1/page1 invoca RewritePath.aspx com o parâmetro query-string que exibe "Página 1" no navegador. Se uma URL como http://localhost/WebSite1/page1 for recebida, uma sobrecarga de RewritePath será invocada, permitindo que você forneça um valor para a PathInfo propriedade, bem como um parâmetro de cadeia de caracteres 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

Comentários

O RewritePath(String) método redireciona uma solicitação de um recurso para um caminho diferente daquele indicado pela URL solicitada. Se você precisar redefinir o caminho virtual para que as solicitações do cliente para recursos de servidor sejam resolvidas corretamente, use a sobrecarga desse método que usa o rebaseClientPath parâmetro e defina o parâmetro como false.

A reescrita de URL é útil quando você deseja reestruturar as páginas em seu aplicativo Web e deseja garantir que as pessoas que marcaram URLs antigas ainda possam usá-las depois que você tiver movido páginas. A reescrita de URL permite que você encaminhe solicitações de forma transparente para o novo local da página.

Se você quiser habilitar um site para usar URLs mais amigáveis e otimizadas para mecanismos de pesquisa, uma alternativa mais robusta é usar ASP.NET roteamento. Para obter mais informações, consulte Roteamento ASP.NET.

Confira também

Aplica-se a