Partager via


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 demandée. RewritePath est utilisé dans l'état de session sans cookie pour supprimer les ID de session des URL.

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.

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.

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é.

RewritePath(String)

Réécrit l’URL à l’aide du chemin d’accès donné.

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.

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.

pathInfo
String

Informations supplémentaires relatives au chemin d’accès à utiliser pour rediriger l’URL. Pour plus d'informations, consultez PathInfo.

queryString
String

Chaîne de requête à utiliser pour rediriger l'URL.

setClientFilePath
Boolean

true pour affecter la valeur du paramètre filePath comme chemin d'accès au fichier de ressources client ; sinon, false.

Exceptions

Le paramètre path n’est pas dans le répertoire racine de l’application actuelle.

Le paramètre filePath n’est pas dans le répertoire racine de l’application actuelle.

Exemples

Pour obtenir un exemple de code, consultez la surcharge de RewritePath(String) méthode.

Remarques

Le filePath paramètre n’inclut pas le contenu du pathInfo paramètre . Pour l’URL http://www.microsoft.com/virdir/page.html/tail, le filePath paramètre est http://www.microsoft.com/virdir/page.html, et le pathInfo paramètre est 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 sur setClientFilePathfalse. Un scénario courant dans lequel vous pouvez définir setClientFilePath sur false est lorsque vous devez réécrire l’URL, et que vous utilisez des thèmes et redirigez l’URL vers une ressource située dans un dossier différent de la ressource demandée.

La réécriture d’URL est utile lorsque vous souhaitez restructurer les pages de votre application web et que vous souhaitez vous assurer que les personnes qui ont créé d’anciens signets d’URL peuvent toujours les utiliser une fois que vous avez déplacé des pages. La réécriture d’URL vous permet de transférer en toute transparence les demandes vers le nouvel emplacement de page.

Si vous souhaitez permettre à un site d’utiliser des URL plus conviviales et optimisées pour les moteurs de recherche, une alternative plus robuste consiste à utiliser le routage ASP.NET. Pour plus d’informations, consultez Routage ASP.NET.

Voir aussi

S’applique à

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.

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.

pathInfo
String

Informations supplémentaires sur le chemin d’accès d’une ressource. Pour plus d'informations, consultez PathInfo.

queryString
String

Chaîne de requête de la requête.

Exceptions

Le paramètre path n’est pas dans le répertoire racine de l’application actuelle.

Le paramètre filePath n’est pas dans le répertoire racine de l’application actuelle.

Exemples

Pour obtenir un exemple de code, y compris un exemple de surcharge de cette méthode, consultez la surcharge de RewritePath(String) méthode.

Remarques

La RewritePath méthode redirige une requête pour une ressource vers une autre ressource sans modifier l’URL.

Le filePath paramètre n’inclut pas le contenu du pathInfo paramètre. Pour l’URL http://www.microsoft.com/virdir/page.html/tail, le filePath paramètre est http://www.microsoft.com/virdir/page.html, et le pathInfo paramètre est tail.

La réécriture d’URL est utile lorsque vous souhaitez restructurer les pages de votre application web et que vous souhaitez vous assurer que les personnes qui ont créé d’anciens signets d’URL peuvent toujours les utiliser une fois que vous avez déplacé des pages. La réécriture d’URL vous permet de transférer en toute transparence les demandes vers le nouvel emplacement de page.

Si vous souhaitez permettre à un site d’utiliser des URL plus conviviales et optimisées pour les moteurs de recherche, une alternative plus robuste consiste à utiliser le routage ASP.NET. Pour plus d’informations, consultez Routage ASP.NET.

Voir aussi

S’applique à

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é.

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.

rebaseClientPath
Boolean

true pour reconfigurer le chemin virtuel ; false pour conserver le chemin virtuel intact.

Exceptions

Le paramètre path a la valeur null.

Le paramètre path n’est pas dans le répertoire racine de l’application actuelle.

Exemples

Pour obtenir un exemple de code, consultez la surcharge de RewritePath(String) méthode.

Remarques

La HttpContext.RewritePath(String, Boolean) méthode est appelée par la HttpContext.RewritePath(String) méthode avec le rebaseClientPath paramètre défini sur 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 sur rebaseClientPathfalse. Un scénario courant dans lequel vous pouvez définir rebaseClientPath sur false est lorsque vous devez réécrire l’URL, et que vous utilisez des thèmes et redirigez l’URL vers une ressource située dans un dossier différent de la ressource demandée.

La réécriture d’URL est utile lorsque vous souhaitez restructurer les pages de votre application web et que vous souhaitez vous assurer que les personnes qui ont créé d’anciens signets d’URL peuvent toujours les utiliser une fois que vous avez déplacé des pages. La réécriture d’URL vous permet de transférer en toute transparence les demandes vers le nouvel emplacement de page.

Si vous souhaitez permettre à un site d’utiliser des URL plus conviviales et optimisées pour les moteurs de recherche, une alternative plus robuste consiste à utiliser le routage ASP.NET. Pour plus d’informations, consultez Routage ASP.NET.

Voir aussi

S’applique à

RewritePath(String)

Réécrit l’URL à l’aide du chemin d’accès donné.

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.

Exceptions

Le paramètre path a la valeur null.

Le paramètre path n’est pas dans le répertoire racine de l’application actuelle.

Exemples

L’exemple suivant montre comment utiliser la RewritePath méthode pour permettre à un site Web de répondre à des URL qui ne reflètent pas la structure de fichiers dans le site Web. Le premier bloc de code est une page Web ASP.NET nommée RewritePath.aspx. Elle nécessite une chaîne de requête. Si le nom de votre site est WebSite1, l’URL http://localhost/WebSite1/RewritePath.aspx?page=1 affiche « Page 1 » dans le navigateur. Le bloc de code qui suit la page Web est le Application_BeginRequest gestionnaire d’événements dans le fichier Global.asax. Ce code intercepte les demandes d’URL telles que http://localhost/WebSite1/page1 et les convertit dans le formulaire requis pour RewritePath.aspx avant leur traitement. Par conséquent, l’URL http://localhost/WebSite1/page1 appelle RewritePath.aspx avec le paramètre query-string qui affiche « Page 1 » dans le navigateur. Si une URL telle que http://localhost/WebSite1/page1 est reçue, une surcharge de RewritePath est appelée qui vous permet de fournir une valeur pour la PathInfo propriété ainsi qu’un paramètre de chaîne de requête.

<%@ 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 RewritePath(String) méthode redirige une requête pour une ressource vers un chemin d’accès différent de celui indiqué par l’URL demandée. Si vous devez réinitialiser le chemin d’accès virtuel afin que les demandes de ressources serveur du client soient correctement résolues, utilisez la surcharge de cette méthode qui prend le rebaseClientPath paramètre et définissez le paramètre sur false.

La réécriture d’URL est utile lorsque vous souhaitez restructurer les pages de votre application web et que vous souhaitez vous assurer que les personnes qui ont créé d’anciens signets d’URL peuvent toujours les utiliser une fois que vous avez déplacé des pages. La réécriture d’URL vous permet de transférer en toute transparence les demandes vers le nouvel emplacement de page.

Si vous souhaitez permettre à un site d’utiliser des URL plus conviviales et optimisées pour les moteurs de recherche, une alternative plus robuste consiste à utiliser le routage ASP.NET. Pour plus d’informations, consultez Routage ASP.NET.

Voir aussi

S’applique à