Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

HttpContext.RewritePath méthode (String)

 

Date de publication : novembre 2016

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

Espace de noms:   System.Web
Assembly:  System.Web (dans System.Web.dll)

public void RewritePath(
	string path
)

Paramètres

path
Type: System.String

Chemin d’accès de réécriture interne.

Exception Condition
ArgumentNullException

Le paramètre path a la valeur null.

HttpException

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

Le RewritePath(String) méthode redirige une requête pour une ressource vers un autre chemin d’accès que celui qui est 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 résolvent correctement, utilisez la surcharge de cette méthode qui accepte le rebaseClientPath paramètre et valeur du paramètre false.

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 ajouté les anciennes URL peuvent toujours les utiliser une fois que vous avez déplacé les pages. Réécriture d’URL vous permet de transférer en toute transparence les demandes vers le nouvel emplacement de la page.

Si vous souhaitez permettre à un site 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 ASP.NET Routing.

L’exemple suivant montre comment utiliser le RewritePath méthode pour permettre à un site Web de répondre aux URL qui ne reflètent pas la structure des fichiers du site Web. Le premier bloc de code est une page Web ASP.NET nommée RewritePath.aspx. Elle requiert 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 comme http://localhost/WebSite1/page1 et les convertit au formulaire qui est requis par RewritePath.aspx avant leur traitement. 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 comme http://localhost/WebSite1/page1 est reçue, une surcharge de RewritePath est appelé qui vous permet de fournir une valeur pour le PathInfo propriété ainsi qu’une requête de paramètre de chaîne.

<%@ 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>
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");
    }
}    

.NET Framework
Disponible depuis 1.1
Retour au début
Afficher: