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.Redirects a request for a resource to a different path than the one that is indicated by the requested URL. Se utiliza RewritePath en el estado de sesión sin cookies para quitar los identificadores de sesión de las direcciones URL.RewritePath is used in cookieless session state to strip session IDs from URLs.

Sobrecargas

RewritePath(String, String, String, Boolean)

Rescribe la dirección URL mediante la ruta de acceso virtual determinada, la información de ruta de acceso, la información 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.Rewrites the URL using the given virtual path, path information, query string information, and a Boolean value that specifies whether the client file path is set to the rewrite path.

RewritePath(String, String, String)

Vuelve a escribir la dirección URL utilizando la ruta de acceso, la información de ruta de acceso y la información de cadena de consulta especificadas.Rewrites the URL by using the given path, path information, and query string information.

RewritePath(String, Boolean)

Escribe de nuevo la dirección URL mediante la ruta de acceso determinada y un valor Boolean que especifica si se modifica la ruta de acceso virtual para los recursos del servidor.Rewrites the URL using the given path and a Boolean value that specifies whether the virtual path for server resources is modified.

RewritePath(String)

Rescribe la dirección URL mediante la ruta de acceso determinada.Rewrites the URL using the given path.

RewritePath(String, String, String, Boolean)

Rescribe la dirección URL mediante la ruta de acceso virtual determinada, la información de ruta de acceso, la información 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.Rewrites the URL using the given virtual path, path information, query string information, and a Boolean value that specifies whether the client file path is set to the rewrite path.

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

La ruta de acceso virtual al recurso que atiende la solicitud.The virtual path to the resource that services the request.

pathInfo
String

Información de ruta de acceso adicional que se va a utilizar en la redirección de la dirección URL.Additional path information to use for the URL redirect. Para obtener más información, vea PathInfo.For more information, see PathInfo.

queryString
String

La cadena de consulta de solicitud que se va a utilizar para la redirección de la dirección URL.The request query string to use for the URL redirect.

setClientFilePath
Boolean

Es true si se va a establecer la ruta de acceso de los recursos de cliente en el valor del parámetro filePath; de lo contrario es false.true to set the file path used for client resources to the value of the filePath parameter; otherwise false.

Excepciones

El parámetro path no está en el directorio raíz de la aplicación actual.The path parameter is not in the current application's root directory.

El parámetro filePath no está en el directorio raíz de la aplicación actual.The filePath parameter is not in the current application's root directory.

Ejemplos

Para obtener un ejemplo de código, vea la sobrecarga del método RewritePath(String).For a code example, see the RewritePath(String) method overload.

Comentarios

El parámetro filePath no incluye el contenido del parámetro pathInfo.The filePath parameter does not include the content of the pathInfo parameter. En el caso de la dirección URL http://www.microsoft.com/virdir/page.html/tail, el parámetro filePath es http://www.microsoft.com/virdir/page.htmly el parámetro pathInfo es tail.For the URL http://www.microsoft.com/virdir/page.html/tail, the filePath parameter is http://www.microsoft.com/virdir/page.html, and the pathInfo parameter is tail.

Para asegurarse de que la ruta de acceso virtual que se usa para construir las rutas de acceso a los recursos no se modifica, establezca el parámetro setClientFilePath en false.To ensure that the virtual path that is used to construct paths to resources is not modified, set the setClientFilePath parameter to false. Un escenario común en el que podría querer establecer setClientFilePath en false es cuando es necesario volver a escribir la dirección URL y se usan los temas y se redirige la dirección URL a un recurso que se encuentra en una carpeta diferente que el recurso solicitado.A common scenario in which you might want to set setClientFilePath to false is when you need to rewrite the URL, and you are using themes and redirecting the URL to a resource located in a different folder than the requested resource.

La reescritura de direcciones URL resulta útil si desea reestructurar las páginas de la aplicación web y desea asegurarse de que las personas que tienen marcadores de direcciones URL antiguas todavía pueden usarlas después de mover páginas.URL rewriting is useful when you want to restructure the pages in your Web application, and you want to make sure that people who have bookmarked old URLs can still use them after you have moved pages. La reescritura de direcciones URL le permite reenviar las solicitudes a la nueva ubicación de la página de forma transparente.URL rewriting enables you to transparently forward requests to the new page location.

Si desea permitir que un sitio use direcciones URL que son más fáciles de usar y están optimizadas para los motores de búsqueda, una alternativa más sólida es usar el enrutamiento de ASP.NET.If you want to enable a site to use URLs that are more user-friendly and are optimized for search engines, a more robust alternative is to use ASP.NET routing. Para obtener más información, consulte enrutamiento ASP.net.For more information, see ASP.NET Routing.

Consulte también:

RewritePath(String, String, String)

Vuelve a escribir la dirección URL utilizando la ruta de acceso, la información de ruta de acceso y la información de cadena de consulta especificadas.Rewrites the URL by using the given path, path information, and query string information.

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.The internal rewrite path.

pathInfo
String

Información adicional de la ruta de acceso de un recurso.Additional path information for a resource. Para obtener más información, vea PathInfo.For more information, see PathInfo.

queryString
String

Cadena de consulta de la solicitud.The request query string.

Excepciones

El parámetro path no está en el directorio raíz de la aplicación actual.The path parameter is not in the current application's root directory.

El parámetro filePath no está en el directorio raíz de la aplicación actual.The filePath parameter is not in the current application's root directory.

Ejemplos

Para obtener un ejemplo de código, incluido un ejemplo de esta sobrecarga del método, vea la sobrecarga del método RewritePath(String).For a code example, including an example of this method overload, see the RewritePath(String) method overload.

Comentarios

El método RewritePath redirige una solicitud de un recurso a otro recurso sin cambiar la dirección URL.The RewritePath method redirects a request for a resource to another resource without changing the URL.

El parámetro filePath no incluye el contenido del parámetro pathInfo.The filePath parameter does not include the pathInfo parameter content. En el caso de la dirección URL http://www.microsoft.com/virdir/page.html/tail, el parámetro filePath es http://www.microsoft.com/virdir/page.htmly el parámetro pathInfo es tail.For the URL http://www.microsoft.com/virdir/page.html/tail, the filePath parameter is http://www.microsoft.com/virdir/page.html, and the pathInfo parameter is tail.

La reescritura de direcciones URL resulta útil si desea reestructurar las páginas de la aplicación web y desea asegurarse de que las personas que tienen marcadores de direcciones URL antiguas todavía pueden usarlas después de mover páginas.URL rewriting is useful when you want to restructure the pages in your Web application, and you want to make sure that people who have bookmarked old URLs can still use them after you have moved pages. La reescritura de direcciones URL le permite reenviar las solicitudes a la nueva ubicación de la página de forma transparente.URL rewriting enables you to transparently forward requests to the new page location.

Si desea permitir que un sitio use direcciones URL que son más fáciles de usar y están optimizadas para los motores de búsqueda, una alternativa más sólida es usar el enrutamiento de ASP.NET.If you want to enable a site to use URLs that are more user-friendly and are optimized for search engines, a more robust alternative is to use ASP.NET routing. Para obtener más información, consulte enrutamiento ASP.net.For more information, see ASP.NET Routing.

Consulte también:

RewritePath(String, Boolean)

Escribe de nuevo la dirección URL mediante la ruta de acceso determinada y un valor Boolean que especifica si se modifica la ruta de acceso virtual para los recursos del servidor.Rewrites the URL using the given path and a Boolean value that specifies whether the virtual path for server resources is modified.

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.The internal rewrite path.

rebaseClientPath
Boolean

Es true para restablecer la ruta de acceso virtual; es false para mantener la ruta de acceso virtual sin modificar.true to reset the virtual path; false to keep the virtual path unchanged.

Excepciones

El parámetro path es null.The path parameter is null.

El parámetro path no está en el directorio raíz de la aplicación actual.The path parameter is not in the current application's root directory.

Ejemplos

Para obtener un ejemplo de código, vea la sobrecarga del método RewritePath(String).For a code example, see the RewritePath(String) method overload.

Comentarios

El método HttpContext.RewritePath(String) llama al método HttpContext.RewritePath(String, Boolean) con el parámetro rebaseClientPath establecido en true.The HttpContext.RewritePath(String, Boolean) method is called by the HttpContext.RewritePath(String) method with the rebaseClientPath parameter set to true. Para asegurarse de que la ruta de acceso virtual que se usa para construir las rutas de acceso a los recursos no se modifica, establezca el parámetro rebaseClientPath en false.To ensure that the virtual path that is used to construct paths to resources is not modified, set the rebaseClientPath parameter to false. Un escenario común en el que podría querer establecer rebaseClientPath en false es cuando es necesario volver a escribir la dirección URL y se usan los temas y se redirige la dirección URL a un recurso que se encuentra en una carpeta diferente que el recurso solicitado.A common scenario in which you might want to set rebaseClientPath to false is when you need to rewrite the URL, and you are using themes and redirecting the URL to a resource located in a different folder than the requested resource.

La reescritura de direcciones URL resulta útil si desea reestructurar las páginas de la aplicación web y desea asegurarse de que las personas que tienen marcadores de direcciones URL antiguas todavía pueden usarlas después de mover páginas.URL rewriting is useful when you want to restructure the pages in your Web application, and you want to make sure that people who have bookmarked old URLs can still use them after you have moved pages. La reescritura de direcciones URL le permite reenviar las solicitudes a la nueva ubicación de la página de forma transparente.URL rewriting enables you to transparently forward requests to the new page location.

Si desea permitir que un sitio use direcciones URL que son más fáciles de usar y están optimizadas para los motores de búsqueda, una alternativa más sólida es usar el enrutamiento de ASP.NET.If you want to enable a site to use URLs that are more user-friendly and are optimized for search engines, a more robust alternative is to use ASP.NET routing. Para obtener más información, consulte enrutamiento ASP.net.For more information, see ASP.NET Routing.

Consulte también:

RewritePath(String)

Rescribe la dirección URL mediante la ruta de acceso determinada.Rewrites the URL using the given path.

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.The internal rewrite path.

Excepciones

El parámetro path es null.The path parameter is null.

El parámetro path no está en el directorio raíz de la aplicación actual.The path parameter is not in the current application's root directory.

Ejemplos

En el ejemplo siguiente se muestra cómo utilizar el método RewritePath para permitir que un sitio web responda a las direcciones URL que no reflejan la estructura de archivos del sitio Web.The following example shows how to use the RewritePath method to enable a Web site to respond to URLs that do not reflect the file structure in the Web site. El primer bloque de código es una página Web ASP.NET denominada RewritePath. aspx.The first block of code is an ASP.NET Web page that is named RewritePath.aspx. Requiere una cadena de consulta.It requires a query string. 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.If the name of your site is WebSite1, the URL http://localhost/WebSite1/RewritePath.aspx?page=1 displays "Page 1" in the browser. El bloque de código que sigue a la página web es el controlador de eventos Application_BeginRequest en el archivo global. asax.The block of code that follows the Web page is the Application_BeginRequest event handler in the Global.asax file. Este código intercepta las solicitudes de direcciones URL como http://localhost/WebSite1/page1 y las convierte en el formato necesario para RewritePath. aspx antes de que se procesen.This code intercepts requests for URLs such as http://localhost/WebSite1/page1 and converts them to the form that is required for RewritePath.aspx before they are processed. 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.Therefore, the URL http://localhost/WebSite1/page1 invokes RewritePath.aspx with the query-string parameter that displays "Page 1" in the browser. Si se recibe una dirección URL como http://localhost/WebSite1/page1, se invoca una sobrecarga de RewritePath que le permite proporcionar un valor para la propiedad PathInfo, así como un parámetro de cadena de consulta.If a URL such as http://localhost/WebSite1/page1 is received, an overload of RewritePath is invoked that enables you to provide a value for the PathInfo property as well as a query string parameter.

<%@ 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 método RewritePath(String) redirige una solicitud para un recurso a una ruta de acceso diferente de la indicada por la dirección URL solicitada.The RewritePath(String) method redirects a request for a resource to a different path than the one that is indicated by the requested URL. 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 parámetro rebaseClientPath y establezca el parámetro en false.If you have to reset the virtual path so that requests from the client for server resources resolve correctly, use the overload of this method that takes the rebaseClientPath parameter and set the parameter to false.

La reescritura de direcciones URL resulta útil si desea reestructurar las páginas de la aplicación web y desea asegurarse de que las personas que tienen marcadores de direcciones URL antiguas todavía pueden usarlas después de mover páginas.URL rewriting is useful when you want to restructure the pages in your Web application, and you want to make sure that people who have bookmarked old URLs can still use them after you have moved pages. La reescritura de direcciones URL le permite reenviar las solicitudes a la nueva ubicación de la página de forma transparente.URL rewriting enables you to transparently forward requests to the new page location.

Si desea permitir que un sitio use direcciones URL que son más fáciles de usar y están optimizadas para los motores de búsqueda, una alternativa más sólida es usar el enrutamiento de ASP.NET.If you want to enable a site to use URLs that are more user-friendly and are optimized for search engines, a more robust alternative is to use ASP.NET routing. Para obtener más información, consulte enrutamiento ASP.net.For more information, see ASP.NET Routing.

Consulte también:

Se aplica a