HttpContext.RewritePath Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.html
e 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 setClientFilePath
false
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.html
e 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 true
como . 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 rebaseClientPath
false
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.