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 RewritePath(String) surcharge de 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 virtuel utilisé pour construire des chemins d’accès aux ressources n’est pas modifié, définissez le setClientFilePath paramètre sur false. Un scénario courant dans lequel vous souhaiterez peut-être définir setClientFilePath false est le moment où vous devez réécrire l’URL, et 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 vous souhaitez vous assurer que les personnes qui ont signeté d’anciennes URL peuvent toujours les utiliser après avoir 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 ASP.NET routage. Pour plus d’informations, consultez ASP.NET routage.

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 méthode, consultez la RewritePath(String) surcharge de méthode.

Remarques

La RewritePath méthode redirige une demande de 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 vous souhaitez vous assurer que les personnes qui ont signeté d’anciennes URL peuvent toujours les utiliser après avoir 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 ASP.NET routage. Pour plus d’informations, consultez ASP.NET routage.

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 RewritePath(String) surcharge de 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 virtuel utilisé pour construire des chemins d’accès aux ressources n’est pas modifié, définissez le rebaseClientPath paramètre sur false. Un scénario courant dans lequel vous souhaiterez peut-être définir rebaseClientPath false est le moment où vous devez réécrire l’URL, et 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 vous souhaitez vous assurer que les personnes qui ont signeté d’anciennes URL peuvent toujours les utiliser après avoir 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 ASP.NET routage. Pour plus d’informations, consultez ASP.NET routage.

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 aux 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 requêtes pour les URL telles que http://localhost/WebSite1/page1 et les convertit en formulaire requis pour RewritePath.aspx avant qu’ils ne soient traités. 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. Si une URL telle qu’elle http://localhost/WebSite1/page1 est reçue, une surcharge d’est RewritePath 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 demande d’une ressource vers un chemin 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 du client pour les ressources du serveur soient résolues correctement, 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 vous souhaitez vous assurer que les personnes qui ont signeté d’anciennes URL peuvent toujours les utiliser après avoir 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 ASP.NET routage. Pour plus d’informations, consultez ASP.NET routage.

Voir aussi

S’applique à