HttpContext.RewritePath Méthode

Définition

Redirige une requête pour une ressource vers un chemin d'accès différent de celui indiqué par l'URL requise.Redirects a request for a resource to a different path than the one that is indicated by the requested URL. RewritePath est utilisé dans l'état de session sans cookie pour supprimer les ID de session des URL.RewritePath is used in cookieless session state to strip session IDs from URLs.

Surcharges

RewritePath(String, String, String, Boolean)

Réécrit l’URL à l’aide du chemin d’accès virtuel donné, des informations relatives au chemin d’accès, des informations de chaîne de requête et d’une valeur booléenne qui spécifie si le chemin d’accès client a pour valeur le chemin d’accès de réécriture.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)

Réécrit l’URL en utilisant le chemin d’accès, les informations relatives au chemin d’accès et les informations de la chaîne de requête donnés.Rewrites the URL by using the given path, path information, and query string information.

RewritePath(String, Boolean)

Réécrit l'URL à l'aide du chemin d'accès donné et d'une valeur booléenne qui spécifie si le chemin d'accès virtuel pour les ressources de serveur est modifié.Rewrites the URL using the given path and a Boolean value that specifies whether the virtual path for server resources is modified.

RewritePath(String)

Réécrit l’URL à l’aide du chemin d’accès donné.Rewrites the URL using the given path.

RewritePath(String, String, String, Boolean)

Réécrit l’URL à l’aide du chemin d’accès virtuel donné, des informations relatives au chemin d’accès, des informations de chaîne de requête et d’une valeur booléenne qui spécifie si le chemin d’accès client a pour valeur le chemin d’accès de réécriture.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)

Paramètres

filePath
String

Chemin d’accès virtuel à la ressource qui traite la requête.The virtual path to the resource that services the request.

pathInfo
String

Les informations supplémentaires relatives au chemin d'accès à utiliser pour rediriger l'URL.Additional path information to use for the URL redirect. Pour plus d'informations, consultez PathInfo.For more information, see PathInfo.

queryString
String

La chaîne de requête à utiliser pour rediriger l'URL.The request query string to use for the URL redirect.

setClientFilePath
Boolean

true pour définir le chemin d'accès du fichier ressources client à la valeur du paramètre filePath ; sinon, false.true to set the file path used for client resources to the value of the filePath parameter; otherwise false.

Exceptions

Le paramètre path n’est pas dans le répertoire racine de l’application actuelle.The path parameter is not in the current application's root directory.

Le paramètre filePath n’est pas dans le répertoire racine de l’application actuelle.The filePath parameter is not in the current application's root directory.

Exemples

Pour obtenir un exemple de code, consultez la surcharge de méthode RewritePath(String).For a code example, see the RewritePath(String) method overload.

Remarques

Le paramètre filePath n’inclut pas le contenu du paramètre pathInfo.The filePath parameter does not include the content of the pathInfo parameter. Pour l’URL http://www.microsoft.com/virdir/page.html/tail, le paramètre filePath est http://www.microsoft.com/virdir/page.htmlet le paramètre pathInfo est 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.

Pour vous assurer que le chemin d’accès virtuel utilisé pour construire des chemins d’accès aux ressources n’est pas modifié, définissez le paramètre setClientFilePath sur 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 scénario courant dans lequel vous pouvez définir setClientFilePath à false est lorsque vous devez réécrire l’URL, et que vous utilisez des thèmes et que vous redirigez l’URL vers une ressource située dans un dossier différent de celui de la ressource demandée.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 réécriture d’URL est utile lorsque vous souhaitez restructurer les pages dans votre application Web et que vous souhaitez vous assurer que les personnes qui ont des URL anciennes peuvent toujours les utiliser une fois que vous avez déplacé des pages.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 réécriture d’URL vous permet de transférer en toute transparence les demandes vers le nouvel emplacement de la page.URL rewriting enables you to transparently forward requests to the new page location.

Si vous souhaitez permettre à un site d’utiliser des URL plus conviviales et optimisées pour les moteurs de recherche, une solution plus robuste consiste à utiliser le routage 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. Pour plus d’informations, consultez la page routage ASP.net.For more information, see ASP.NET Routing.

Voir aussi

RewritePath(String, String, String)

Réécrit l’URL en utilisant le chemin d’accès, les informations relatives au chemin d’accès et les informations de la chaîne de requête donnés.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)

Paramètres

filePath
String

Chemin d’accès de réécriture interne.The internal rewrite path.

pathInfo
String

Informations supplémentaires sur le chemin d’accès d’une ressource.Additional path information for a resource. Pour plus d'informations, consultez PathInfo.For more information, see PathInfo.

queryString
String

Chaîne de requête de la requête.The request query string.

Exceptions

Le paramètre path n’est pas dans le répertoire racine de l’application actuelle.The path parameter is not in the current application's root directory.

Le paramètre filePath n’est pas dans le répertoire racine de l’application actuelle.The filePath parameter is not in the current application's root directory.

Exemples

Pour obtenir un exemple de code, y compris un exemple de cette surcharge de méthode, consultez la RewritePath(String) surcharge de méthode.For a code example, including an example of this method overload, see the RewritePath(String) method overload.

Remarques

La méthode RewritePath redirige une requête pour une ressource vers une autre ressource sans modifier l’URL.The RewritePath method redirects a request for a resource to another resource without changing the URL.

Le paramètre filePath n’inclut pas le contenu du paramètre pathInfo.The filePath parameter does not include the pathInfo parameter content. Pour l’URL http://www.microsoft.com/virdir/page.html/tail, le paramètre filePath est http://www.microsoft.com/virdir/page.htmlet le paramètre pathInfo est 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 réécriture d’URL est utile lorsque vous souhaitez restructurer les pages dans votre application Web et que vous souhaitez vous assurer que les personnes qui ont des URL anciennes peuvent toujours les utiliser une fois que vous avez déplacé des pages.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 réécriture d’URL vous permet de transférer en toute transparence les demandes vers le nouvel emplacement de la page.URL rewriting enables you to transparently forward requests to the new page location.

Si vous souhaitez permettre à un site d’utiliser des URL plus conviviales et optimisées pour les moteurs de recherche, une solution plus robuste consiste à utiliser le routage 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. Pour plus d’informations, consultez la page routage ASP.net.For more information, see ASP.NET Routing.

Voir aussi

RewritePath(String, Boolean)

Réécrit l'URL à l'aide du chemin d'accès donné et d'une valeur booléenne qui spécifie si le chemin d'accès virtuel pour les ressources de serveur est modifié.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)

Paramètres

path
String

Chemin d’accès de réécriture interne.The internal rewrite path.

rebaseClientPath
Boolean

true pour reconfigurer le chemin virtuel ; false pour conserver le chemin virtuel intact.true to reset the virtual path; false to keep the virtual path unchanged.

Exceptions

Le paramètre path a la valeur null.The path parameter is null.

Le paramètre path n’est pas dans le répertoire racine de l’application actuelle.The path parameter is not in the current application's root directory.

Exemples

Pour obtenir un exemple de code, consultez la surcharge de méthode RewritePath(String).For a code example, see the RewritePath(String) method overload.

Remarques

La méthode HttpContext.RewritePath(String, Boolean) est appelée par la méthode HttpContext.RewritePath(String) avec le paramètre rebaseClientPath défini sur true.The HttpContext.RewritePath(String, Boolean) method is called by the HttpContext.RewritePath(String) method with the rebaseClientPath parameter set to true. Pour vous assurer que le chemin d’accès virtuel utilisé pour construire des chemins d’accès aux ressources n’est pas modifié, définissez le paramètre rebaseClientPath sur 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 scénario courant dans lequel vous pouvez définir rebaseClientPath à false est lorsque vous devez réécrire l’URL, et que vous utilisez des thèmes et que vous redirigez l’URL vers une ressource située dans un dossier différent de celui de la ressource demandée.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 réécriture d’URL est utile lorsque vous souhaitez restructurer les pages dans votre application Web et que vous souhaitez vous assurer que les personnes qui ont des URL anciennes peuvent toujours les utiliser une fois que vous avez déplacé des pages.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 réécriture d’URL vous permet de transférer en toute transparence les demandes vers le nouvel emplacement de la page.URL rewriting enables you to transparently forward requests to the new page location.

Si vous souhaitez permettre à un site d’utiliser des URL plus conviviales et optimisées pour les moteurs de recherche, une solution plus robuste consiste à utiliser le routage 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. Pour plus d’informations, consultez la page routage ASP.net.For more information, see ASP.NET Routing.

Voir aussi

RewritePath(String)

Réécrit l’URL à l’aide du chemin d’accès donné.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)

Paramètres

path
String

Chemin d'accès de réécriture interne.The internal rewrite path.

Exceptions

Le paramètre path a la valeur null.The path parameter is null.

Le paramètre path n’est pas dans le répertoire racine de l’application actuelle.The path parameter is not in the current application's root directory.

Exemples

L’exemple suivant montre comment utiliser la méthode RewritePath pour permettre à un site Web de répondre à des URL qui ne reflètent pas la structure des fichiers du site 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. Le premier bloc de code est une page Web ASP.NET nommée RewritePath. aspx.The first block of code is an ASP.NET Web page that is named RewritePath.aspx. Elle requiert une chaîne de requête.It requires a query string. Si le nom de votre site est WebSite1, l’URL http://localhost/WebSite1/RewritePath.aspx?page=1 affiche « page 1 » dans le navigateur.If the name of your site is WebSite1, the URL http://localhost/WebSite1/RewritePath.aspx?page=1 displays "Page 1" in the browser. Le bloc de code qui suit la page Web est le Application_BeginRequest gestionnaire d’événements dans le fichier global. asax.The block of code that follows the Web page is the Application_BeginRequest event handler in the Global.asax file. Ce code intercepte les demandes d’URL, telles que http://localhost/WebSite1/page1, et les convertit au format requis pour RewritePath. aspx avant leur traitement.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. Par conséquent, l’URL http://localhost/WebSite1/page1 appelle RewritePath. aspx avec le paramètre de chaîne de requête qui affiche « page 1 » dans le navigateur.Therefore, the URL http://localhost/WebSite1/page1 invokes RewritePath.aspx with the query-string parameter that displays "Page 1" in the browser. Si une URL telle que http://localhost/WebSite1/page1 est reçue, une surcharge de RewritePath est appelée, ce qui vous permet de fournir une valeur pour la propriété PathInfo, ainsi qu’un paramètre de chaîne de requête.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

Remarques

La méthode RewritePath(String) redirige une requête pour une ressource vers un chemin d’accès différent de celui indiqué par l’URL demandée.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 vous devez réinitialiser le chemin d’accès virtuel afin que les demandes du client pour les ressources du serveur soient résolues correctement, utilisez la surcharge de cette méthode qui prend le paramètre rebaseClientPath et définissez le paramètre sur 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 réécriture d’URL est utile lorsque vous souhaitez restructurer les pages dans votre application Web et que vous souhaitez vous assurer que les personnes qui ont des URL anciennes peuvent toujours les utiliser une fois que vous avez déplacé des pages.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 réécriture d’URL vous permet de transférer en toute transparence les demandes vers le nouvel emplacement de la page.URL rewriting enables you to transparently forward requests to the new page location.

Si vous souhaitez permettre à un site d’utiliser des URL plus conviviales et optimisées pour les moteurs de recherche, une solution plus robuste consiste à utiliser le routage 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. Pour plus d’informations, consultez la page routage ASP.net.For more information, see ASP.NET Routing.

Voir aussi

S’applique à