次の方法で共有


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 パラメーターは であり http://www.microsoft.com/virdir/page.html、パラメーターは pathInfo 末尾です。

リソースへのパスの構築に使用される仮想パスが変更されないようにするには、 パラメーターを setClientFilePathfalse設定します。 に設定setClientFilePathfalseする一般的なシナリオは、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 パラメーターは であり 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 メソッドによって呼び出されます。 リソースへのパスの構築に使用される仮想パスが変更されないようにするには、 パラメーターを rebaseClientPathfalse設定します。 に設定rebaseClientPathfalseする一般的なシナリオは、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 によって示されるパスとは異なるパスにリダイレクトします。 サーバー リソースに対するクライアントからの要求が正しく解決されるように仮想パスをリセットする必要がある場合は、 パラメーターを受け取り、 パラメーターを rebaseClientPathfalse設定するこのメソッドのオーバーロードを使用します。

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

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

こちらもご覧ください

適用対象