HttpContext.RewritePath Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.