Condividi tramite


HttpContext.RewritePath Metodo

Definizione

Reindirizza una richiesta di una risorsa a un percorso diverso da quello indicato dall'URL richiesto. RewritePath viene utilizzato nello stato sessione senza cookie per rimuovere ID sessione dagli URL.

Overload

RewritePath(String, String, String, Boolean)

Riscrive l'URL con il percorso virtuale specificato, informazioni sul percorso, informazioni sulla stringa di query e un valore booleano che specifica se il percorso del file del client è impostato sul percorso di riscrittura.

RewritePath(String, String, String)

Riscrive l'URL usando il percorso specificato, le informazioni sul percorso e le informazioni sulla stringa di query.

RewritePath(String, Boolean)

Riscrive l'URL con il percorso specificato e un valore booleano che specifica se il percorso virtuale per le risorse del server è stato modificato.

RewritePath(String)

Riscrive l'URL con il percorso specificato.

RewritePath(String, String, String, Boolean)

Riscrive l'URL con il percorso virtuale specificato, informazioni sul percorso, informazioni sulla stringa di query e un valore booleano che specifica se il percorso del file del client è impostato sul percorso di riscrittura.

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)

Parametri

filePath
String

Il percorso virtuale alla risorsa che gestisce la richiesta.

pathInfo
String

Informazioni aggiuntive sul percorso da usare per il reindirizzamento dell'URL. Per altre informazioni, vedere PathInfo.

queryString
String

La stringa di query della richiesta da usare per il reindirizzamento dell'URL.

setClientFilePath
Boolean

true per impostare il percorso dei file usato per le risorse del client sul valore del parametro filePath; in caso contrario, false.

Eccezioni

Il parametro path non si trova nella directory radice dell'applicazione corrente.

Il parametro filePath non si trova nella directory radice dell'applicazione corrente.

Esempio

Per un esempio di codice, vedere l'overload del RewritePath(String) metodo.

Commenti

Il filePath parametro non include il contenuto del pathInfo parametro. Per l'URL http://www.microsoft.com/virdir/page.html/tail, il parametro è e il pathInfofilePath parametro è http://www.microsoft.com/virdir/page.htmlla coda.

Per assicurarsi che il percorso virtuale usato per costruire percorsi alle risorse non venga modificato, impostare il setClientFilePath parametro su false. Uno scenario comune in cui si potrebbe voler impostare setClientFilePathfalse è quando è necessario riscrivere l'URL e si usano temi e reindirizzando l'URL a una risorsa situata in una cartella diversa rispetto alla risorsa richiesta.

La riscrittura dell'URL è utile quando si desidera ristrutturare le pagine nell'applicazione Web e si vuole assicurarsi che le persone con url precedenti con segnalibri possano comunque usarle dopo aver spostato pagine. La riscrittura dell'URL consente di inoltrare in modo trasparente le richieste alla nuova posizione della pagina.

Se si vuole abilitare un sito per l'uso di URL più descrittivi e ottimizzati per i motori di ricerca, un'alternativa più affidabile consiste nell'usare ASP.NET routing. Per altre informazioni, vedere Routing ASP.NET.

Vedi anche

Si applica a

RewritePath(String, String, String)

Riscrive l'URL usando il percorso specificato, le informazioni sul percorso e le informazioni sulla stringa di query.

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)

Parametri

filePath
String

Percorso di riscrittura interno.

pathInfo
String

Informazioni aggiuntive sul percorso di una risorsa. Per altre informazioni, vedere PathInfo.

queryString
String

Stringa di query della richiesta.

Eccezioni

Il parametro path non si trova nella directory radice dell'applicazione corrente.

Il parametro filePath non si trova nella directory radice dell'applicazione corrente.

Esempio

Per un esempio di codice, incluso un esempio di overload di questo metodo, vedere l'overload del RewritePath(String) metodo.

Commenti

Il RewritePath metodo reindirizza una richiesta per una risorsa a un'altra risorsa senza modificare l'URL.

Il filePath parametro non include il contenuto del pathInfo parametro. Per l'URL http://www.microsoft.com/virdir/page.html/tail, il parametro è e il pathInfofilePath parametro è http://www.microsoft.com/virdir/page.htmlla coda.

La riscrittura dell'URL è utile quando si desidera ristrutturare le pagine nell'applicazione Web e si vuole assicurarsi che le persone con url precedenti con segnalibri possano comunque usarle dopo aver spostato pagine. La riscrittura dell'URL consente di inoltrare in modo trasparente le richieste alla nuova posizione della pagina.

Se si vuole abilitare un sito per l'uso di URL più descrittivi e ottimizzati per i motori di ricerca, un'alternativa più affidabile consiste nell'usare ASP.NET routing. Per altre informazioni, vedere Routing ASP.NET.

Vedi anche

Si applica a

RewritePath(String, Boolean)

Riscrive l'URL con il percorso specificato e un valore booleano che specifica se il percorso virtuale per le risorse del server è stato modificato.

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)

Parametri

path
String

Percorso di riscrittura interno.

rebaseClientPath
Boolean

true per reimpostare il percorso virtuale, false per mantenere tale percorso invariato.

Eccezioni

Il valore del parametro path è null.

Il parametro path non si trova nella directory radice dell'applicazione corrente.

Esempio

Per un esempio di codice, vedere l'overload del RewritePath(String) metodo.

Commenti

Il HttpContext.RewritePath(String, Boolean) metodo viene chiamato dal metodo con il HttpContext.RewritePath(String)rebaseClientPath parametro impostato su true. Per assicurarsi che il percorso virtuale usato per costruire percorsi alle risorse non venga modificato, impostare il rebaseClientPath parametro su false. Uno scenario comune in cui si potrebbe voler impostare rebaseClientPathfalse è quando è necessario riscrivere l'URL e si usano temi e reindirizzando l'URL a una risorsa situata in una cartella diversa rispetto alla risorsa richiesta.

La riscrittura dell'URL è utile quando si desidera ristrutturare le pagine nell'applicazione Web e si vuole assicurarsi che le persone con url precedenti con segnalibri possano comunque usarle dopo aver spostato pagine. La riscrittura dell'URL consente di inoltrare in modo trasparente le richieste alla nuova posizione della pagina.

Se si vuole abilitare un sito per l'uso di URL più descrittivi e ottimizzati per i motori di ricerca, un'alternativa più affidabile consiste nell'usare ASP.NET routing. Per altre informazioni, vedere Routing ASP.NET.

Vedi anche

Si applica a

RewritePath(String)

Riscrive l'URL con il percorso specificato.

public:
 void RewritePath(System::String ^ path);
public void RewritePath (string path);
member this.RewritePath : string -> unit
Public Sub RewritePath (path As String)

Parametri

path
String

Percorso di riscrittura interno.

Eccezioni

Il valore del parametro path è null.

Il parametro path non si trova nella directory radice dell'applicazione corrente.

Esempio

Nell'esempio seguente viene illustrato come usare il RewritePath metodo per consentire a un sito Web di rispondere agli URL che non riflettono la struttura di file nel sito Web. Il primo blocco di codice è una pagina Web ASP.NET denominata RewritePath.aspx. Richiede una stringa di query. Se il nome del sito è WebSite1, l'URL http://localhost/WebSite1/RewritePath.aspx?page=1 visualizza "Pagina 1" nel browser. Il blocco di codice che segue la pagina Web è il Application_BeginRequest gestore eventi nel file Global.asax. Questo codice intercetta le richieste di URL, ad http://localhost/WebSite1/page1 esempio e li converte nel modulo necessario per RewritePath.aspx prima dell'elaborazione. Pertanto, l'URL http://localhost/WebSite1/page1 richiama RewritePath.aspx con il parametro stringa di query che visualizza "Pagina 1" nel browser. Se viene ricevuto un URL http://localhost/WebSite1/page1 come viene ricevuto, viene richiamato un overload di RewritePath che consente di specificare un valore per la PathInfo proprietà e un parametro stringa di query.

<%@ 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

Commenti

Il RewritePath(String) metodo reindirizza una richiesta per una risorsa a un percorso diverso da quello indicato dall'URL richiesto. Se è necessario reimpostare il percorso virtuale in modo che le richieste dal client per le risorse del server vengano risolte correttamente, usare l'overload di questo metodo che accetta il parametro e impostare il rebaseClientPath parametro su false.

La riscrittura dell'URL è utile quando si desidera ristrutturare le pagine nell'applicazione Web e si vuole assicurarsi che le persone con url precedenti con segnalibri possano comunque usarle dopo aver spostato pagine. La riscrittura dell'URL consente di inoltrare in modo trasparente le richieste alla nuova posizione della pagina.

Se si vuole abilitare un sito per l'uso di URL più descrittivi e ottimizzati per i motori di ricerca, un'alternativa più affidabile consiste nell'usare ASP.NET routing. Per altre informazioni, vedere Routing ASP.NET.

Vedi anche

Si applica a