HttpContext.RewritePath メソッド

定義

リソースの要求を、要求された URL で示されているものとは別のパスにリダイレクトします。 RewritePath は、Cookie を使用しないセッション状態において、URL からセッション ID を取り除くために使用されます。

オーバーロード

RewritePath(String, String, String, Boolean)

指定した仮想パス、パス情報、クエリ文字列、およびクライアント ファイル パスをリライト パスに設定するかどうかを指定するブール値を使用して、URL をリライトします。

RewritePath(String, String, String)

指定されたパス、パス情報、およびクエリ文字列情報を使用して、URL をリライトします。

RewritePath(String, Boolean)

指定したパスおよびサーバー リソースの仮想パスが変更されるかどうかを指定するブール値を使用して、URL をリライトします。

RewritePath(String)

指定されたパスを使用して URL をリライトします。

RewritePath(String, String, String, Boolean)

指定した仮想パス、パス情報、クエリ文字列、およびクライアント ファイル パスをリライト パスに設定するかどうかを指定するブール値を使用して、URL をリライトします。

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)

パラメーター

filePath
String

要求を処理するリソースへの仮想パス。

pathInfo
String

URL リダイレクトで使用する追加のパス情報。 詳細については、「PathInfo」を参照してください。

queryString
String

URL リダイレクトで使用する要求クエリ文字列。

setClientFilePath
Boolean

クライアント リソースで使用されるファイル パスを filePath パラメーターの値に設定する場合は true。それ以外の場合は false

例外

path パラメーターが現在のアプリケーションのルート ディレクトリ内にありません。

filePath パラメーターが現在のアプリケーションのルート ディレクトリ内にありません。

コード例については、メソッドのオーバーロードを RewritePath(String) 参照してください。

注釈

パラメーターには filePath 、パラメーターの内容は pathInfo 含まれません。 URL http://www.microsoft.com/virdir/page.html/tailの場合、filePathパラメーターは 、パラメーターpathInfohttp://www.microsoft.com/virdir/page.html末尾です。

リソースへのパスの構築に使用される仮想パスが変更されないようにするには、パラメーターfalsesetClientFilePath . 設定する一setClientFilePath``false般的なシナリオは、URL を書き換える必要があり、テーマを使用し、要求されたリソースとは異なるフォルダーにあるリソースに URL をリダイレクトする場合です。

URL の書き換えは、Web アプリケーションでページを再構築し、古い URL をブックマークしたユーザーがページを移動した後も引き続き使用できるようにする場合に便利です。 URL の書き換えにより、要求を新しいページの場所に透過的に転送できます。

サイトで、より使いやすく、検索エンジン用に最適化された URL を使用できるようにする場合は、ASP.NET ルーティングを使用する方がより堅牢な方法です。 詳細については、「ASP.NET ルーティング」を参照してください。

こちらもご覧ください

適用対象

RewritePath(String, String, String)

指定されたパス、パス情報、およびクエリ文字列情報を使用して、URL をリライトします。

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)

パラメーター

filePath
String

内部リライト パス。

pathInfo
String

リソースの追加パス情報。 詳細については、「PathInfo」を参照してください。

queryString
String

要求クエリ文字列。

例外

path パラメーターが現在のアプリケーションのルート ディレクトリ内にありません。

filePath パラメーターが現在のアプリケーションのルート ディレクトリ内にありません。

このメソッド オーバーロードの例を含むコード例については、メソッドのオーバーロードを RewritePath(String) 参照してください。

注釈

このメソッドは RewritePath 、URL を変更せずに、リソースの要求を別のリソースにリダイレクトします。

パラメーターには filePath 、パラメーターの内容は pathInfo 含まれません。 URL http://www.microsoft.com/virdir/page.html/tailの場合、filePathパラメーターは 、パラメーターpathInfohttp://www.microsoft.com/virdir/page.html末尾です。

URL の書き換えは、Web アプリケーションでページを再構築し、古い URL をブックマークしたユーザーがページを移動した後も引き続き使用できるようにする場合に便利です。 URL の書き換えにより、要求を新しいページの場所に透過的に転送できます。

サイトで、より使いやすく、検索エンジン用に最適化された URL を使用できるようにする場合は、ASP.NET ルーティングを使用する方がより堅牢な方法です。 詳細については、「ASP.NET ルーティング」を参照してください。

こちらもご覧ください

適用対象

RewritePath(String, Boolean)

指定したパスおよびサーバー リソースの仮想パスが変更されるかどうかを指定するブール値を使用して、URL をリライトします。

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)

パラメーター

path
String

内部リライト パス。

rebaseClientPath
Boolean

仮想パスをリセットする場合は true。仮想パスを変更しない場合は false

例外

path パラメーターが null です。

path パラメーターが現在のアプリケーションのルート ディレクトリ内にありません。

コード例については、メソッドのオーバーロードを RewritePath(String) 参照してください。

注釈

このメソッドはHttpContext.RewritePath(String, Boolean)、パラメーターが > にHttpContext.RewritePath(String)設定trueされたrebaseClientPathメソッドによって呼び出されます。 リソースへのパスの構築に使用される仮想パスが変更されないようにするには、パラメーターfalserebaseClientPath . 設定する一rebaseClientPath``false般的なシナリオは、URL を書き換える必要があり、テーマを使用し、要求されたリソースとは異なるフォルダーにあるリソースに URL をリダイレクトする場合です。

URL の書き換えは、Web アプリケーションでページを再構築し、古い URL をブックマークしたユーザーがページを移動した後も引き続き使用できるようにする場合に便利です。 URL の書き換えにより、要求を新しいページの場所に透過的に転送できます。

サイトで、より使いやすく、検索エンジン用に最適化された URL を使用できるようにする場合は、ASP.NET ルーティングを使用する方がより堅牢な方法です。 詳細については、「ASP.NET ルーティング」を参照してください。

こちらもご覧ください

適用対象

RewritePath(String)

指定されたパスを使用して URL をリライトします。

public:
 void RewritePath(System::String ^ path);
public void RewritePath (string path);
member this.RewritePath : string -> unit
Public Sub RewritePath (path As String)

パラメーター

path
String

内部リライト パス。

例外

path パラメーターが null です。

path パラメーターが現在のアプリケーションのルート ディレクトリ内にありません。

次の例では、このメソッドを RewritePath 使用して、Web サイト内のファイル構造を反映していない URL に Web サイトが応答できるようにする方法を示します。 コードの最初のブロックは、RewritePath.aspx という名前の ASP.NET Web ページです。 クエリ文字列が必要です。 サイトの名前が WebSite1 の場合、URL http://localhost/WebSite1/RewritePath.aspx?page=1 はブラウザーに "Page 1" と表示されます。 Web ページに続くコード ブロックは、 Application_BeginRequest Global.asax ファイルのイベント ハンドラーです。 このコードは、URL などの http://localhost/WebSite1/page1 要求をインターセプトし、処理される前に RewritePath.aspx に必要なフォームに変換します。 したがって、URL http://localhost/WebSite1/page1 は、ブラウザーに "Page 1" を表示するクエリ文字列パラメーターを使用して RewritePath.aspx を呼び出します。 このような http://localhost/WebSite1/page1 URL を受信すると、プロパティの RewritePathPathInfo とクエリ文字列パラメーターを指定できるオーバーロードが呼び出されます。

<%@ 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

注釈

このメソッドは RewritePath(String) 、リソースの要求を、要求された URL によって示されるパスとは異なるパスにリダイレクトします。 サーバー リソースに対するクライアントからの要求が正しく解決されるように仮想パスをリセットする必要がある場合は、パラメーターを受け取り、パラメーターを rebaseClientPath 設定するこのメソッドのオーバーロードを使用します false

URL の書き換えは、Web アプリケーションでページを再構築し、古い URL をブックマークしたユーザーがページを移動した後も引き続き使用できるようにする場合に便利です。 URL の書き換えにより、要求を新しいページの場所に透過的に転送できます。

サイトで、より使いやすく、検索エンジン用に最適化された URL を使用できるようにする場合は、ASP.NET ルーティングを使用する方がより堅牢な方法です。 詳細については、「ASP.NET ルーティング」を参照してください。

こちらもご覧ください

適用対象