HttpContext.RewritePath 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
요청한 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
요청을 처리하는 리소스에 대한 가상 경로입니다.
- 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
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
내부 재작성 경로입니다.
- 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
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
매개 변수가 현재 애플리케이션의 루트 디렉터리에 있지 않습니다.
예제
다음 예제에서는 사용 하는 RewritePath 방법을 보여 줍니다.는 웹 사이트의 파일 구조를 반영 하지 않는 URL에 응답 하는 웹 사이트를 사용 하는 방법입니다. 첫 번째 코드 블록은 이름이 RewritePath.aspx ASP.NET 웹 페이지입니다. 쿼리 문자열이 필요합니다. 사이트 이름이 WebSite1인 경우 URL http://localhost/WebSite1/RewritePath.aspx?page=1
은 브라우저에 "페이지 1"을 표시합니다. 웹 페이지를 따르는 코드 블록은 Global.asax 파일의 이벤트 처리기입니다 Application_BeginRequest
. 이 코드는 과 같은 http://localhost/WebSite1/page1
URL에 대한 요청을 가로채서 처리하기 전에 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 라우팅을 참조하세요.
추가 정보
적용 대상
.NET