HttpContext.RewritePath Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 pathInfo
filePath
parametro è http://www.microsoft.com/virdir/page.html
la 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 setClientFilePath
false
è 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 pathInfo
filePath
parametro è http://www.microsoft.com/virdir/page.html
la 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 rebaseClientPath
false
è 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.