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 in der RewritePath(String) Methodenüberladung.

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 Parameter , und der filePath 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 false. Ein gängiges Szenario, in dem Sie festlegen möchten setClientFilePath false , wenn Sie die URL neu schreiben müssen, und Sie verwenden Designs und umleiten die URL in eine Ressource, die sich in einem anderen Ordner befindet als die angeforderte Ressource.

Die URL-Neuschreibung ist nützlich, wenn Sie die Seiten in Ihrer Webanwendung neu strukturieren möchten, und Sie möchten sicherstellen, dass Personen, die alte URLs geschrieben haben, diese weiterhin verwenden können, nachdem Sie Seiten verschoben haben. Mit der URL-Neuschreibung können Sie Anforderungen an den neuen Seitenspeicherort transparent weiterleiten.

Wenn Sie eine Website zum Verwenden von URLs aktivieren 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.

Siehe auch

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 dieser Methodenüberladung, finden Sie in der RewritePath(String) Methodenüberladung.

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 nicht den pathInfo Parameterinhalt. Für die URL http://www.microsoft.com/virdir/page.html/tailist http://www.microsoft.com/virdir/page.htmlder Parameter , und der filePath pathInfo Parameter ist Tail.

Die URL-Neuschreibung ist nützlich, wenn Sie die Seiten in Ihrer Webanwendung neu strukturieren möchten, und Sie möchten sicherstellen, dass Personen, die alte URLs geschrieben haben, diese weiterhin verwenden können, nachdem Sie Seiten verschoben haben. Mit der URL-Neuschreibung können Sie Anforderungen an den neuen Seitenspeicherort transparent weiterleiten.

Wenn Sie eine Website zum Verwenden von URLs aktivieren 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.

Siehe auch

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 in der RewritePath(String) Methodenüberladung.

Hinweise

Die HttpContext.RewritePath(String, Boolean) Methode wird von der HttpContext.RewritePath(String) Methode mit dem rebaseClientPath Parametersatz auf true" aufgerufen. 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 false. Ein gängiges Szenario, in dem Sie festlegen möchten rebaseClientPath false , wenn Sie die URL neu schreiben müssen, und Sie verwenden Designs und umleiten die URL in eine Ressource, die sich in einem anderen Ordner befindet als die angeforderte Ressource.

Die URL-Neuschreibung ist nützlich, wenn Sie die Seiten in Ihrer Webanwendung neu strukturieren möchten, und Sie möchten sicherstellen, dass Personen, die alte URLs geschrieben haben, diese weiterhin verwenden können, nachdem Sie Seiten verschoben haben. Mit der URL-Neuschreibung können Sie Anforderungen an den neuen Seitenspeicherort transparent weiterleiten.

Wenn Sie eine Website zum Verwenden von URLs aktivieren 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.

Siehe auch

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 Methode verwenden, um eine Website zu aktivieren, um auf URLs zu reagieren, die die RewritePath Dateistruktur nicht auf der Website widerspiegeln. Der erste Codeblock ist eine ASP.NET Webseite mit dem Namen RewritePath.aspx. Es erfordert eine Abfragezeichenfolge. Wenn der Name Ihrer Website WebSite1 ist, zeigt die URL http://localhost/WebSite1/RewritePath.aspx?page=1 "Seite 1" im Browser an. Der Codeblock, der der Webseite folgt, ist der Application_BeginRequest Ereignishandler in der Datei "Global.asax". Dieser Code fängt Anforderungen für URLs ab, z http://localhost/WebSite1/page1 . B. 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 "Page 1" im Browser anzeigt. Wenn eine URL wie http://localhost/WebSite1/page1 z. B. empfangen wird, wird eine Überladung RewritePath aufgerufen, mit der 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 auf einen anderen Pfad um als die von der angeforderten URL angegebene. Wenn Sie den virtuellen Pfad zurücksetzen müssen, damit Anforderungen aus dem Client für Serverressourcen ordnungsgemäß aufgelöst werden, verwenden Sie die Überladung dieser Methode, die den rebaseClientPath Parameter verwendet und den Parameter falseauf festlegen.

Die URL-Neuschreibung ist nützlich, wenn Sie die Seiten in Ihrer Webanwendung neu strukturieren möchten, und Sie möchten sicherstellen, dass Personen, die alte URLs geschrieben haben, diese weiterhin verwenden können, nachdem Sie Seiten verschoben haben. Mit der URL-Neuschreibung können Sie Anforderungen an den neuen Seitenspeicherort transparent weiterleiten.

Wenn Sie eine Website zum Verwenden von URLs aktivieren 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.

Siehe auch

Gilt für