HttpContext.RewritePath 메서드

정의

요청한 URL이 나타내는 경로가 아닌 다른 경로로 리소스에 대한 요청을 리디렉션합니다. RewritePath는 쿠키를 사용하지 않는 세션 상태에서 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.htmltail이고 pathInfo 매개 변수는 tail입니다.

리소스에 대한 경로를 생성하는 데 사용되는 가상 경로가 수정되지 않도록 하려면 매개 변수를 false``setClientFilePath로 설정합니다. 설정 setClientFilePath false 하려는 일반적인 시나리오는 URL을 다시 작성해야 하고 테마를 사용하고 URL을 요청된 리소스와 다른 폴더에 있는 리소스로 리디렉션하는 경우입니다.

URL 재작성 웹 애플리케이션의 페이지를 재구성 하 고는 이전 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.htmltail이고 pathInfo 매개 변수는 tail입니다.

URL 재작성 웹 애플리케이션의 페이지를 재구성 하 고는 이전 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) .로 설정된 메서드에 rebaseClientPath 의해 호출됩니다 true. 리소스에 대한 경로를 생성하는 데 사용되는 가상 경로가 수정되지 않도록 하려면 매개 변수를 false``rebaseClientPath로 설정합니다. 설정 rebaseClientPath false 하려는 일반적인 시나리오는 URL을 다시 작성해야 하고 테마를 사용하고 URL을 요청된 리소스와 다른 폴더에 있는 리소스로 리디렉션하는 경우입니다.

URL 재작성 웹 애플리케이션의 페이지를 재구성 하 고는 이전 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 매개 변수가 현재 애플리케이션의 루트 디렉터리에 있지 않습니다.

예제

다음 예제에서는 웹 사이트에서 웹 사이트의 파일 구조를 반영하지 않는 URL에 응답할 수 있도록 하는 방법을 보여 RewritePath 줍니다. 코드의 첫 번째 블록은 RewritePath.aspx라는 ASP.NET 웹 페이지입니다. 쿼리 문자열이 필요합니다. 사이트 이름이 WebSite1인 경우 URL http://localhost/WebSite1/RewritePath.aspx?page=1 은 브라우저에 "페이지 1"을 표시합니다. 웹 페이지를 따르는 코드 블록은 Global.asax 파일의 Application_BeginRequest 이벤트 처리기입니다. 이 코드는 URL과 같은 http://localhost/WebSite1/page1 요청을 가로채서 RewritePath.aspx에 필요한 형식으로 변환합니다. 따라서 URL http://localhost/WebSite1/page1 은 브라우저에서 "페이지 1"을 표시하는 쿼리 문자열 매개 변수를 사용하여 RewritePath.aspx를 호출합니다. 이러한 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 재작성 웹 애플리케이션의 페이지를 재구성 하 고는 이전 Url를 책갈피에 추가한 사람들을 계속 사용할 수 페이지 이동한 후 있는지 확인 하려는 경우 유용 합니다. URL 다시 쓰기를 사용하면 요청을 새 페이지 위치로 투명하게 전달할 수 있습니다.

사이트에서 사용자 친화적이고 검색 엔진에 최적화된 URL을 사용하도록 설정하려는 경우 ASP.NET 라우팅을 사용하는 것이 더 강력한 대안입니다. 자세한 내용은 ASP.NET 라우팅을 참조하세요.

추가 정보

적용 대상