HttpContext.RewritePath メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
リソースの要求を、要求された 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
要求を処理するリソースへの仮想パス。
- queryString
- String
URL リダイレクトで使用する要求クエリ文字列。
- setClientFilePath
- Boolean
クライアント リソースで使用されるファイル パスを filePath
パラメーターの値に設定する場合は true
。それ以外の場合は false
。
例外
path
パラメーターが現在のアプリケーションのルート ディレクトリ内にありません。
filePath
パラメーターが現在のアプリケーションのルート ディレクトリ内にありません。
例
コード例については、 メソッドのオーバーロードに関するページを RewritePath(String) 参照してください。
注釈
パラメーターには filePath
、パラメーターの内容は pathInfo
含まれません。 URL http://www.microsoft.com/virdir/page.html/tail
の場合、 filePath
パラメーターは であり http://www.microsoft.com/virdir/page.html
、パラメーターは pathInfo
末尾です。
リソースへのパスの構築に使用される仮想パスが変更されないようにするには、 パラメーターを setClientFilePath
に false
設定します。 に設定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
内部リライト パス。
- queryString
- String
要求クエリ文字列。
例外
path
パラメーターが現在のアプリケーションのルート ディレクトリ内にありません。
filePath
パラメーターが現在のアプリケーションのルート ディレクトリ内にありません。
例
このメソッド オーバーロードの例を含むコード例については、 メソッドのオーバーロードに関するページを RewritePath(String) 参照してください。
注釈
メソッドは RewritePath 、URL を変更せずに、リソースの要求を別のリソースにリダイレクトします。
パラメーターには filePath
、パラメーターの内容は pathInfo
含まれません。 URL http://www.microsoft.com/virdir/page.html/tail
の場合、 filePath
パラメーターは であり http://www.microsoft.com/virdir/page.html
、パラメーターは pathInfo
末尾です。
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
メソッドによって呼び出されます。 リソースへのパスの構築に使用される仮想パスが変更されないようにするには、 パラメーターを rebaseClientPath
に false
設定します。 に設定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 ファイルのイベント ハンドラーです。 このコードは、 などの http://localhost/WebSite1/page1
URL の要求をインターセプトし、処理する前にRewritePath.aspxに必要なフォームに変換します。 したがって、URL http://localhost/WebSite1/page1
はクエリ文字列パラメーターを使用してRewritePath.aspxを呼び出し、ブラウザーに "Page 1" と表示します。 などの http://localhost/WebSite1/page1
URL を受信すると、 のオーバーロード RewritePath が呼び出され、 PathInfo プロパティの値とクエリ文字列パラメーターを指定できます。
<%@ 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 ルーティング」を参照してください。
こちらもご覧ください
適用対象
.NET