HttpContext.RewritePath Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 setClientFilePath
false
. 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 rebaseClientPath
false
. 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.