Comparteix a través de


HttpContext.RewritePath Método

Definición

Redirige una solicitud para un recurso a una ruta de acceso diferente de la indicada por la dirección URL solicitada. Se utiliza RewritePath en el estado de sesión sin cookies para quitar los identificadores de sesión de las direcciones URL.

Sobrecargas

RewritePath(String, String, String, Boolean)

Reescribe la dirección URL usando la ruta de acceso virtual dada, la información de la ruta de acceso, la información la de cadena de consulta y un valor booleano que especifica si la ruta de acceso del archivo del cliente se establece en la ruta de acceso de reescritura.

RewritePath(String, String, String)

Reescribe la dirección URL usando la ruta de acceso, la información de la ruta de acceso y la información de la cadena de consulta especificadas.

RewritePath(String, Boolean)

Reescribe la dirección URL usando la ruta de acceso dada y un valor booleano que especifica si se modifica la ruta de acceso virtual a los recursos del servidor.

RewritePath(String)

Reescribe la dirección URL usando la ruta de acceso dada.

RewritePath(String, String, String, Boolean)

Reescribe la dirección URL usando la ruta de acceso virtual dada, la información de la ruta de acceso, la información la de cadena de consulta y un valor booleano que especifica si la ruta de acceso del archivo del cliente se establece en la ruta de acceso de reescritura.

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

Ruta de acceso virtual al recurso que atiende la solicitud.

pathInfo
String

Información adicional de la ruta de acceso que se va a usar para redireccionar la dirección URL. Para obtener más información, vea PathInfo.

queryString
String

Cadena de consulta de solicitud que se va a usar para redireccionar la dirección URL.

setClientFilePath
Boolean

Es true para establecer la ruta de acceso de los recursos del cliente en el valor del parámetro filePath; en caso contrario, es false.

Excepciones

El parámetro path no se encuentra en el directorio raíz de la aplicación actual.

El parámetro filePath no se encuentra en el directorio raíz de la aplicación actual.

Ejemplos

Para obtener un ejemplo de código, consulte la sobrecarga del RewritePath(String) método.

Comentarios

El filePath parámetro no incluye el contenido del pathInfo parámetro . Para la dirección URL http://www.microsoft.com/virdir/page.html/tail, el filePath parámetro es http://www.microsoft.com/virdir/page.htmly el pathInfo parámetro es tail.

Para asegurarse de que la ruta de acceso virtual que se usa para construir rutas de acceso a recursos no se modifica, establezca el setClientFilePath parámetro falseen . Un escenario común en el que es posible que desee establecer setClientFilePathfalse en es cuando necesite reescribir la dirección URL y use temas y redirija la dirección URL a un recurso ubicado en una carpeta diferente a la del recurso solicitado.

La reescritura de direcciones URL es útil cuando desea reestructurar las páginas de la aplicación web y quiere asegurarse de que las personas que han marcado direcciones URL antiguas todavía pueden usarlas después de haber movido páginas. La reescritura de direcciones URL le permite reenviar de forma transparente las solicitudes a la nueva ubicación de la página.

Si desea permitir que un sitio use direcciones URL que sean más fáciles de usar y estén optimizadas para motores de búsqueda, una alternativa más sólida es usar ASP.NET enrutamiento. Para obtener más información, consulte enrutamiento de ASP.NET.

Consulte también

Se aplica a

RewritePath(String, String, String)

Reescribe la dirección URL usando la ruta de acceso, la información de la ruta de acceso y la información de la cadena de consulta especificadas.

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

Ruta de acceso de reescritura interna.

pathInfo
String

Información adicional de la ruta de acceso de un recurso. Para obtener más información, vea PathInfo.

queryString
String

Cadena de consulta de la solicitud.

Excepciones

El parámetro path no se encuentra en el directorio raíz de la aplicación actual.

El parámetro filePath no se encuentra en el directorio raíz de la aplicación actual.

Ejemplos

Para obtener un ejemplo de código, incluido un ejemplo de esta sobrecarga de método, consulte la sobrecarga del RewritePath(String) método.

Comentarios

El RewritePath método redirige una solicitud de un recurso a otro recurso sin cambiar la dirección URL.

El filePath parámetro no incluye el contenido del pathInfo parámetro. Para la dirección URL http://www.microsoft.com/virdir/page.html/tail, el filePath parámetro es http://www.microsoft.com/virdir/page.htmly el pathInfo parámetro es tail.

La reescritura de direcciones URL es útil cuando desea reestructurar las páginas de la aplicación web y quiere asegurarse de que las personas que han marcado direcciones URL antiguas todavía pueden usarlas después de haber movido páginas. La reescritura de direcciones URL le permite reenviar de forma transparente las solicitudes a la nueva ubicación de la página.

Si desea permitir que un sitio use direcciones URL que sean más fáciles de usar y estén optimizadas para motores de búsqueda, una alternativa más sólida es usar ASP.NET enrutamiento. Para obtener más información, consulte enrutamiento de ASP.NET.

Consulte también

Se aplica a

RewritePath(String, Boolean)

Reescribe la dirección URL usando la ruta de acceso dada y un valor booleano que especifica si se modifica la ruta de acceso virtual a los recursos del servidor.

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

Ruta de acceso de reescritura interna.

rebaseClientPath
Boolean

Es true para restablecer la ruta de acceso virtual; es false para mantener si cambios la ruta de acceso virtual.

Excepciones

El parámetro path es null.

El parámetro path no se encuentra en el directorio raíz de la aplicación actual.

Ejemplos

Para obtener un ejemplo de código, consulte la sobrecarga del RewritePath(String) método.

Comentarios

El HttpContext.RewritePath(String, Boolean) método llama al HttpContext.RewritePath(String) método con el rebaseClientPath parámetro establecido en true. Para asegurarse de que la ruta de acceso virtual que se usa para construir rutas de acceso a recursos no se modifica, establezca el rebaseClientPath parámetro falseen . Un escenario común en el que es posible que desee establecer rebaseClientPathfalse en es cuando necesite reescribir la dirección URL y use temas y redirija la dirección URL a un recurso ubicado en una carpeta diferente a la del recurso solicitado.

La reescritura de direcciones URL es útil cuando desea reestructurar las páginas de la aplicación web y quiere asegurarse de que las personas que han marcado direcciones URL antiguas todavía pueden usarlas después de haber movido páginas. La reescritura de direcciones URL le permite reenviar de forma transparente las solicitudes a la nueva ubicación de la página.

Si desea permitir que un sitio use direcciones URL que sean más fáciles de usar y estén optimizadas para motores de búsqueda, una alternativa más sólida es usar ASP.NET enrutamiento. Para obtener más información, consulte enrutamiento de ASP.NET.

Consulte también

Se aplica a

RewritePath(String)

Reescribe la dirección URL usando la ruta de acceso dada.

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

Ruta de acceso de reescritura interna.

Excepciones

El parámetro path es null.

El parámetro path no se encuentra en el directorio raíz de la aplicación actual.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el RewritePath método para permitir que un sitio web responda a direcciones URL que no reflejen la estructura de archivos en el sitio web. El primer bloque de código es una página web de ASP.NET denominada RewritePath.aspx. Requiere una cadena de consulta. Si el nombre del sitio es WebSite1, la dirección URL http://localhost/WebSite1/RewritePath.aspx?page=1 muestra "Página 1" en el explorador. El bloque de código que sigue a la página web es el Application_BeginRequest controlador de eventos en el archivo Global.asax. Este código intercepta las solicitudes de direcciones URL, como http://localhost/WebSite1/page1 y las convierte en el formulario necesario para RewritePath.aspx antes de procesarlas. Por lo tanto, la dirección URL http://localhost/WebSite1/page1 invoca RewritePath.aspx con el parámetro de cadena de consulta que muestra "Página 1" en el explorador. Si se recibe una dirección URL como http://localhost/WebSite1/page1 , se invoca una sobrecarga de RewritePath que permite proporcionar un valor para la PathInfo propiedad, así como un parámetro de cadena 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

Comentarios

El RewritePath(String) método redirige una solicitud de un recurso a una ruta de acceso diferente a la indicada por la dirección URL solicitada. Si tiene que restablecer la ruta de acceso virtual para que las solicitudes del cliente para los recursos del servidor se resuelvan correctamente, use la sobrecarga de este método que toma el rebaseClientPath parámetro y establece el parámetro en false.

La reescritura de direcciones URL es útil cuando desea reestructurar las páginas de la aplicación web y quiere asegurarse de que las personas que han marcado direcciones URL antiguas todavía pueden usarlas después de haber movido páginas. La reescritura de direcciones URL le permite reenviar de forma transparente las solicitudes a la nueva ubicación de la página.

Si desea permitir que un sitio use direcciones URL que sean más fáciles de usar y estén optimizadas para motores de búsqueda, una alternativa más sólida es usar ASP.NET enrutamiento. Para obtener más información, consulte enrutamiento de ASP.NET.

Consulte también

Se aplica a