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 usato nello stato della sessione senza cookie per rimuovere gli ID sessione dagli URL.
Overload
| Nome | Descrizione |
|---|---|
| RewritePath(String, String, String, Boolean) |
Riscrive l'URL usando il percorso virtuale, le informazioni sul percorso, le informazioni sulla stringa di query e un valore booleano che specifica se il percorso del file client è impostato sul percorso di riscrittura. |
| RewritePath(String, String, String) |
Riscrive l'URL usando il percorso, le informazioni sul percorso e le informazioni sulla stringa di query specificate. |
| RewritePath(String, Boolean) |
Riscrive l'URL usando il percorso specificato e un valore booleano che specifica se il percorso virtuale per le risorse del server viene modificato. |
| RewritePath(String) |
Riscrive l'URL usando il percorso specificato. |
RewritePath(String, String, String, Boolean)
Riscrive l'URL usando il percorso virtuale, le informazioni sul percorso, le informazioni sulla stringa di query e un valore booleano che specifica se il percorso del file 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
Percorso virtuale della risorsa che esegue il servizio della richiesta.
- pathInfo
- String
Informazioni aggiuntive sul percorso da usare per il reindirizzamento url. Per altre informazioni, vedere PathInfo.
- queryString
- String
Stringa di query della richiesta da usare per il reindirizzamento url.
- setClientFilePath
- Boolean
true per impostare il percorso del file utilizzato per le risorse client sul valore del filePath parametro ; in caso contrario false, .
Eccezioni
Il path parametro non si trova nella directory radice dell'applicazione corrente.
Il filePath parametro 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 filePath parametro è http://www.microsoft.com/virdir/page.htmle il pathInfo parametro è tail.
Per assicurarsi che il percorso virtuale usato per costruire percorsi per le risorse non venga modificato, impostare il setClientFilePath parametro su false. Uno scenario comune in cui si potrebbe voler impostare setClientFilePath su false è quando è necessario riscrivere l'URL e si usano temi e si reindirizza l'URL a una risorsa che si trova in una cartella diversa rispetto alla risorsa richiesta.
La riscrittura degli URL è utile quando si desidera ristrutturare le pagine nell'applicazione Web e si vuole assicurarsi che gli utenti con URL obsoleti con segnalibro possano comunque usarle dopo aver spostato le pagine. La riscrittura url consente di inoltrare in modo trasparente le richieste al nuovo percorso della pagina.
Se si vuole abilitare un sito per l'uso di URL più intuitivi 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, le informazioni sul percorso e le informazioni sulla stringa di query specificate.
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 per una risorsa. Per altre informazioni, vedere PathInfo.
- queryString
- String
Stringa di query della richiesta.
Eccezioni
Il path parametro non si trova nella directory radice dell'applicazione corrente.
Il filePath parametro 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 di 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 filePath parametro è http://www.microsoft.com/virdir/page.htmle il pathInfo parametro è tail.
La riscrittura degli URL è utile quando si desidera ristrutturare le pagine nell'applicazione Web e si vuole assicurarsi che gli utenti con URL obsoleti con segnalibro possano comunque usarle dopo aver spostato le pagine. La riscrittura url consente di inoltrare in modo trasparente le richieste al nuovo percorso della pagina.
Se si vuole abilitare un sito per l'uso di URL più intuitivi 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 usando il percorso specificato e un valore booleano che specifica se il percorso virtuale per le risorse del server viene 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 invariato il percorso virtuale.
Eccezioni
Il path parametro è null.
Il path parametro 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 HttpContext.RewritePath(String) metodo con il rebaseClientPath parametro impostato su true. Per assicurarsi che il percorso virtuale usato per costruire percorsi per le risorse non venga modificato, impostare il rebaseClientPath parametro su false. Uno scenario comune in cui si potrebbe voler impostare rebaseClientPath su false è quando è necessario riscrivere l'URL e si usano temi e si reindirizza l'URL a una risorsa che si trova in una cartella diversa rispetto alla risorsa richiesta.
La riscrittura degli URL è utile quando si desidera ristrutturare le pagine nell'applicazione Web e si vuole assicurarsi che gli utenti con URL obsoleti con segnalibro possano comunque usarle dopo aver spostato le pagine. La riscrittura url consente di inoltrare in modo trasparente le richieste al nuovo percorso della pagina.
Se si vuole abilitare un sito per l'uso di URL più intuitivi 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 usando 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 path parametro è null.
Il path parametro 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, http://localhost/WebSite1/page1 ad esempio e le converte nel modulo necessario per RewritePath.aspx prima dell'elaborazione. Pertanto, l'URL http://localhost/WebSite1/page1 richiama RewritePath.aspx con il parametro della stringa di query che visualizza "Page 1" nel browser. Se viene ricevuto un URL, http://localhost/WebSite1/page1 viene richiamato un overload di RewritePath che consente di fornire un valore per la PathInfo proprietà e un parametro della 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 di 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 rebaseClientPath parametro e impostare il parametro su false.
La riscrittura degli URL è utile quando si desidera ristrutturare le pagine nell'applicazione Web e si vuole assicurarsi che gli utenti con URL obsoleti con segnalibro possano comunque usarle dopo aver spostato le pagine. La riscrittura url consente di inoltrare in modo trasparente le richieste al nuovo percorso della pagina.
Se si vuole abilitare un sito per l'uso di URL più intuitivi e ottimizzati per i motori di ricerca, un'alternativa più affidabile consiste nell'usare ASP.NET routing. Per altre informazioni, vedere Routing ASP.NET.