Teilen über


HttpContext.RewritePath Methode

Definition

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/tailist http://www.microsoft.com/virdir/page.htmlder 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

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/tailist http://www.microsoft.com/virdir/page.htmlder 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

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 truefestgelegt 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

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 falselegt.

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

Gilt für: