HttpContext.RewritePath Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Redirige una solicitud de un recurso a una ruta de acceso diferente a la indicada por la dirección URL solicitada. RewritePath se usa en el estado de sesión sin cookies para quitar los identificadores de sesión de las direcciones URL.
Sobrecargas
| Nombre | Description |
|---|---|
| RewritePath(String, String, String, Boolean) |
Vuelve a escribir la dirección URL mediante la ruta de acceso virtual, la información de ruta de acceso, la información de la cadena de consulta y un valor booleano que especifica si la ruta de acceso del archivo de cliente está establecida en la ruta de acceso de reescritura. |
| RewritePath(String, String, String) |
Vuelve a escribir la dirección URL mediante la ruta de acceso, la información de ruta de acceso y la información de cadena de consulta especificadas. |
| RewritePath(String, Boolean) |
Vuelve a escribir la dirección URL mediante la ruta de acceso especificada y un valor booleano que especifica si se modifica la ruta de acceso virtual para los recursos del servidor. |
| RewritePath(String) |
Vuelve a escribir la dirección URL mediante la ruta de acceso especificada. |
RewritePath(String, String, String, Boolean)
Vuelve a escribir la dirección URL mediante la ruta de acceso virtual, la información de ruta de acceso, la información de la cadena de consulta y un valor booleano que especifica si la ruta de acceso del archivo de cliente está establecida 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 ruta de acceso que se usará para el redireccionamiento de la dirección URL. Para obtener más información, consulte PathInfo.
- queryString
- String
Cadena de consulta de solicitud que se va a usar para el redireccionamiento de la dirección URL.
- setClientFilePath
- Boolean
true es para establecer la ruta de acceso del archivo utilizada para los recursos de cliente en el valor del filePath parámetro; en caso contrario false, es .
Excepciones
El path parámetro no está en el directorio raíz de la aplicación actual.
El filePath parámetro no está 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 parámetro es tail pathInfo .
Para asegurarse de que la ruta de acceso virtual que se usa para construir rutas de acceso a los 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 necesita volver a escribir la dirección URL y usa temas y redirige 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 las direcciones URL antiguas todavía pueden usarlas después de haber movido páginas. La reescritura de direcciones URL permite reenviar solicitudes de forma transparente 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
- enrutamiento de ASP.NET
- Tutorial: Uso del enrutamiento de ASP.NET en una aplicación de formularios web Forms
Se aplica a
RewritePath(String, String, String)
Vuelve a escribir la dirección URL mediante la ruta de acceso, la información de ruta de acceso y la información de 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 ruta de acceso para un recurso. Para obtener más información, consulte PathInfo.
- queryString
- String
Cadena de consulta de solicitud.
Excepciones
El path parámetro no está en el directorio raíz de la aplicación actual.
El filePath parámetro no está 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 parámetro es tail pathInfo .
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 las direcciones URL antiguas todavía pueden usarlas después de haber movido páginas. La reescritura de direcciones URL permite reenviar solicitudes de forma transparente 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
- enrutamiento de ASP.NET
- Tutorial: Uso del enrutamiento de ASP.NET en una aplicación de formularios web Forms
Se aplica a
RewritePath(String, Boolean)
Vuelve a escribir la dirección URL mediante la ruta de acceso especificada y un valor booleano que especifica si se modifica la ruta de acceso virtual para 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
true para restablecer la ruta de acceso virtual; false para mantener la ruta de acceso virtual sin cambios.
Excepciones
El path parámetro es null.
El path parámetro no está 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 trueen . Para asegurarse de que la ruta de acceso virtual que se usa para construir rutas de acceso a los 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 necesita volver a escribir la dirección URL y usa temas y redirige 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 las direcciones URL antiguas todavía pueden usarlas después de haber movido páginas. La reescritura de direcciones URL permite reenviar solicitudes de forma transparente 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
- enrutamiento de ASP.NET
- Tutorial: Uso del enrutamiento de ASP.NET en una aplicación de formularios web Forms
Se aplica a
RewritePath(String)
Vuelve a escribir la dirección URL mediante la ruta de acceso especificada.
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 path parámetro es null.
El path parámetro no está 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 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 establezca el parámetro falseen .
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 las direcciones URL antiguas todavía pueden usarlas después de haber movido páginas. La reescritura de direcciones URL permite reenviar solicitudes de forma transparente 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
- enrutamiento de ASP.NET
- Tutorial: Uso del enrutamiento de ASP.NET en una aplicación de formularios web Forms