HttpContext.RewritePath Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Leitet die Anforderung einer Ressource an einen anderen als den durch die angeforderte URL angegebenen Pfad um. RewritePath wird im Sitzungszustand ohne Cookies verwendet, um Sitzungs-IDs aus URLs zu entfernen.
Überlädt
RewritePath(String, String, String, Boolean) |
Ändert die URL mit dem angegebenen virtuellen Pfad, den angegebenen Pfadinformationen, den angegebenen Zeichenfolgeninformationen und einem booleschen Wert, der angibt, ob der Pfad mit dem Clientdateipfad neu geschrieben wird. |
RewritePath(String, String, String) |
Ändert die URL unter Verwendung des angegebenen Pfads, der Pfadinformationen und der Informationen über die Abfragezeichenfolge. |
RewritePath(String, Boolean) |
Ändert die URL mit dem angegebenen Pfad und einem booleschen Wert, der angibt, ob der virtuelle Pfad für die Serverressource geändert wird. |
RewritePath(String) |
Ändert die URL mit dem angegebenen Pfad. |
RewritePath(String, String, String, Boolean)
Ändert die URL mit dem angegebenen virtuellen Pfad, den angegebenen Pfadinformationen, den angegebenen Zeichenfolgeninformationen und einem booleschen Wert, der angibt, ob der Pfad mit dem Clientdateipfad neu geschrieben wird.
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)
Parameter
- filePath
- String
Der virtuelle Pfad für die Ressource zur Verarbeitung der Anforderung.
- pathInfo
- String
Zusätzliche Pfadinformationen für die URL-Umleitung. Weitere Informationen finden Sie unter PathInfo.
- queryString
- String
Die Abfragezeichenfolge der Anforderung für die URL-Umleitung.
- setClientFilePath
- Boolean
true
, um den Dateipfad für Clientressourcen auf den Wert des filePath
-Parameters festzulegen, andernfalls false
.
Ausnahmen
Der path
-Parameter befindet sich nicht im Stammverzeichnis der aktuellen Anwendung.
Der filePath
-Parameter befindet sich nicht im Stammverzeichnis der aktuellen Anwendung.
Beispiele
Ein Codebeispiel finden Sie unter Methodenüberladung RewritePath(String) .
Hinweise
Der filePath
Parameter enthält nicht den Inhalt des pathInfo
Parameters. Für die URL http://www.microsoft.com/virdir/page.html/tail
ist http://www.microsoft.com/virdir/page.html
der filePath
Parameter , und der pathInfo
Parameter ist tail.
Um sicherzustellen, dass der virtuelle Pfad, der zum Erstellen von Pfaden zu Ressourcen verwendet wird, nicht geändert wird, legen Sie den setClientFilePath
Parameter auf fest false
. Ein häufiges Szenario, in dem Sie möglicherweise auf false
festlegen setClientFilePath
möchten, ist, wenn Sie die URL neu schreiben müssen und Sie Designs verwenden und die URL zu einer Ressource umleiten, die sich in einem anderen Ordner als der angeforderten Ressource befindet.
Url-Umschreiben ist nützlich, wenn Sie die Seiten in Ihrer Webanwendung neu strukturieren möchten und sicherstellen möchten, dass Personen, die alte URLs als Lesezeichen erstellt haben, diese auch nach dem Verschieben von Seiten verwenden können. Das Umschreiben von URL ermöglicht es Ihnen, Anforderungen transparent an den neuen Seitenspeicherort weiterzuleiten.
Wenn Sie einer Website die Verwendung von URLs ermöglichen möchten, die benutzerfreundlicher sind und für Suchmaschinen optimiert sind, besteht eine robustere Alternative darin, ASP.NET Routing zu verwenden. Weitere Informationen finden Sie unter ASP.NET Routing.
Weitere Informationen
- ASP.NET-Routing
- Exemplarische Vorgehensweise: Verwenden von ASP.NET Routing in einer Web Forms-Anwendung
Gilt für:
RewritePath(String, String, String)
Ändert die URL unter Verwendung des angegebenen Pfads, der Pfadinformationen und der Informationen über die Abfragezeichenfolge.
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)
Parameter
- filePath
- String
Der interne Pfad für das erneute Schreiben.
- pathInfo
- String
Zusätzliche Pfadinformationen für eine Ressource. Weitere Informationen finden Sie unter PathInfo.
- queryString
- String
Die Abfragezeichenfolge der Anforderung.
Ausnahmen
Der path
-Parameter befindet sich nicht im Stammverzeichnis der aktuellen Anwendung.
Der filePath
-Parameter befindet sich nicht im Stammverzeichnis der aktuellen Anwendung.
Beispiele
Ein Codebeispiel, einschließlich eines Beispiels für diese Methodenüberladung, finden Sie unter Methodenüberladung RewritePath(String) .
Hinweise
Die RewritePath Methode leitet eine Anforderung für eine Ressource an eine andere Ressource um, ohne die URL zu ändern.
Der filePath
Parameter enthält pathInfo
keinen Parameterinhalt. Für die URL http://www.microsoft.com/virdir/page.html/tail
ist http://www.microsoft.com/virdir/page.html
der filePath
Parameter , und der pathInfo
Parameter ist tail.
Url-Umschreiben ist nützlich, wenn Sie die Seiten in Ihrer Webanwendung neu strukturieren möchten und sicherstellen möchten, dass Personen, die alte URLs als Lesezeichen erstellt haben, diese auch nach dem Verschieben von Seiten verwenden können. Das Umschreiben von URL ermöglicht es Ihnen, Anforderungen transparent an den neuen Seitenspeicherort weiterzuleiten.
Wenn Sie einer Website die Verwendung von URLs ermöglichen möchten, die benutzerfreundlicher sind und für Suchmaschinen optimiert sind, besteht eine robustere Alternative darin, ASP.NET Routing zu verwenden. Weitere Informationen finden Sie unter ASP.NET Routing.
Weitere Informationen
- ASP.NET-Routing
- Exemplarische Vorgehensweise: Verwenden von ASP.NET Routing in einer Web Forms-Anwendung
Gilt für:
RewritePath(String, Boolean)
Ändert die URL mit dem angegebenen Pfad und einem booleschen Wert, der angibt, ob der virtuelle Pfad für die Serverressource geändert wird.
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)
Parameter
- path
- String
Der interne Pfad für das erneute Schreiben.
- rebaseClientPath
- Boolean
true
, um den virtuellen Pfad zurückzusetzen, false
, um den virtuellen Pfad unverändert zu lassen.
Ausnahmen
Der path
-Parameter ist null
.
Der path
-Parameter befindet sich nicht im Stammverzeichnis der aktuellen Anwendung.
Beispiele
Ein Codebeispiel finden Sie unter Methodenüberladung RewritePath(String) .
Hinweise
Die HttpContext.RewritePath(String, Boolean) -Methode wird von der HttpContext.RewritePath(String) -Methode aufgerufen, wobei der rebaseClientPath
Parameter auf true
festgelegt ist. Um sicherzustellen, dass der virtuelle Pfad, der zum Erstellen von Pfaden zu Ressourcen verwendet wird, nicht geändert wird, legen Sie den rebaseClientPath
Parameter auf fest false
. Ein häufiges Szenario, in dem Sie möglicherweise auf false
festlegen rebaseClientPath
möchten, ist, wenn Sie die URL neu schreiben müssen und Sie Designs verwenden und die URL zu einer Ressource umleiten, die sich in einem anderen Ordner als der angeforderten Ressource befindet.
Url-Umschreiben ist nützlich, wenn Sie die Seiten in Ihrer Webanwendung neu strukturieren möchten und sicherstellen möchten, dass Personen, die alte URLs als Lesezeichen erstellt haben, diese auch nach dem Verschieben von Seiten verwenden können. Das Umschreiben von URL ermöglicht es Ihnen, Anforderungen transparent an den neuen Seitenspeicherort weiterzuleiten.
Wenn Sie einer Website die Verwendung von URLs ermöglichen möchten, die benutzerfreundlicher sind und für Suchmaschinen optimiert sind, besteht eine robustere Alternative darin, ASP.NET Routing zu verwenden. Weitere Informationen finden Sie unter ASP.NET Routing.
Weitere Informationen
- ASP.NET-Routing
- Exemplarische Vorgehensweise: Verwenden von ASP.NET Routing in einer Web Forms-Anwendung
Gilt für:
RewritePath(String)
Ändert die URL mit dem angegebenen Pfad.
public:
void RewritePath(System::String ^ path);
public void RewritePath (string path);
member this.RewritePath : string -> unit
Public Sub RewritePath (path As String)
Parameter
- path
- String
Der interne Pfad für das erneute Schreiben.
Ausnahmen
Der path
-Parameter ist null
.
Der path
-Parameter befindet sich nicht im Stammverzeichnis der aktuellen Anwendung.
Beispiele
Im folgenden Beispiel wird gezeigt, wie Sie die RewritePath -Methode verwenden, um eine Website zu aktivieren, um auf URLs zu reagieren, die nicht die Dateistruktur auf der Website widerspiegeln. Der erste Codeblock ist eine ASP.NET Webseite mit dem Namen RewritePath.aspx. Es ist eine Abfragezeichenfolge erforderlich. Wenn der Name Ihrer Website WebSite1 lautet, wird in der URL http://localhost/WebSite1/RewritePath.aspx?page=1
"Seite 1" im Browser angezeigt. Der Codeblock, der auf die Webseite folgt, ist der Application_BeginRequest
Ereignishandler in der Datei Global.asax. Dieser Code fängt Anforderungen für URLs wie http://localhost/WebSite1/page1
ab und konvertiert sie in das Formular, das für RewritePath.aspx erforderlich ist, bevor sie verarbeitet werden. Daher ruft die URL http://localhost/WebSite1/page1
RewritePath.aspx mit dem Abfragezeichenfolgenparameter auf, der "Seite 1" im Browser anzeigt. Wenn eine URL wie http://localhost/WebSite1/page1
empfangen wird, wird eine Überladung von aufgerufen, mit der RewritePath Sie einen Wert für die PathInfo Eigenschaft sowie einen Abfragezeichenfolgenparameter bereitstellen können.
<%@ 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
Hinweise
Die RewritePath(String) -Methode leitet eine Anforderung für eine Ressource an einen anderen Pfad als den um, der durch die angeforderte URL angegeben wird. Wenn Sie den virtuellen Pfad zurücksetzen müssen, damit Anforderungen vom Client für Serverressourcen ordnungsgemäß aufgelöst werden, verwenden Sie die Überladung dieser Methode, die den rebaseClientPath
Parameter übernimmt und den Parameter auf false
legt.
Url-Umschreiben ist nützlich, wenn Sie die Seiten in Ihrer Webanwendung neu strukturieren möchten und sicherstellen möchten, dass Personen, die alte URLs als Lesezeichen erstellt haben, diese auch nach dem Verschieben von Seiten verwenden können. Das Umschreiben von URL ermöglicht es Ihnen, Anforderungen transparent an den neuen Seitenspeicherort weiterzuleiten.
Wenn Sie einer Website die Verwendung von URLs ermöglichen möchten, die benutzerfreundlicher sind und für Suchmaschinen optimiert sind, besteht eine robustere Alternative darin, ASP.NET Routing zu verwenden. Weitere Informationen finden Sie unter ASP.NET Routing.
Weitere Informationen
- ASP.NET-Routing
- Exemplarische Vorgehensweise: Verwenden von ASP.NET Routing in einer Web Forms-Anwendung