HttpContext.RewritePath HttpContext.RewritePath HttpContext.RewritePath HttpContext.RewritePath Method

Определение

Перенаправляет запрос ресурса по пути, отличному от указанного запрошенным URL-адресом.Redirects a request for a resource to a different path than the one that is indicated by the requested URL. RewritePath используется в состоянии сеанса без куки-файлов, чтобы отделять ИД сеансов от URL-адресов.RewritePath is used in cookieless session state to strip session IDs from URLs.

Перегрузки

RewritePath(String, String, String, Boolean) RewritePath(String, String, String, Boolean) RewritePath(String, String, String, Boolean) RewritePath(String, String, String, Boolean)

Перезаписывает URL-адрес используя заданный виртуальный путь, сведения о пути, сведения о строке запроса и логическое значение, которое указывает, был ли задан путь к файлу клиента для пути перезаписи.Rewrites the URL using the given virtual path, path information, query string information, and a Boolean value that specifies whether the client file path is set to the rewrite path.

RewritePath(String, String, String) RewritePath(String, String, String) RewritePath(String, String, String) RewritePath(String, String, String)

Перезаписывает URL-адрес, используя заданный путь, сведения о пути и данные строки запроса.Rewrites the URL by using the given path, path information, and query string information.

RewritePath(String, Boolean) RewritePath(String, Boolean) RewritePath(String, Boolean) RewritePath(String, Boolean)

Перезаписывает URL-адрес используя заданный путь и логическое значение, которое указывает, был ли изменен виртуальный путь к ресурсам сервера.Rewrites the URL using the given path and a Boolean value that specifies whether the virtual path for server resources is modified.

RewritePath(String) RewritePath(String) RewritePath(String) RewritePath(String)

Перезаписывает URL-адрес используя заданный путь.Rewrites the URL using the given path.

RewritePath(String, String, String, Boolean) RewritePath(String, String, String, Boolean) RewritePath(String, String, String, Boolean) RewritePath(String, String, String, Boolean)

Перезаписывает URL-адрес используя заданный виртуальный путь, сведения о пути, сведения о строке запроса и логическое значение, которое указывает, был ли задан путь к файлу клиента для пути перезаписи.Rewrites the URL using the given virtual path, path information, query string information, and a Boolean value that specifies whether the client file path is set to the rewrite path.

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 String String String

Виртуальный путь к ресурсу, обслуживающему запрос.The virtual path to the resource that services the request.

pathInfo
String String String String

Дополнительные сведения о пути, используемом для перенаправления URL-адреса.Additional path information to use for the URL redirect. Для получения дополнительной информации см. PathInfo.For more information, see PathInfo.

queryString
String String String String

Строка очереди запросов для перенаправления URL-адреса.The request query string to use for the URL redirect.

setClientFilePath
Boolean Boolean Boolean Boolean

Значение true для задания пути файла, используемого для ресурсов клиента, для значения параметра filePath; в противном случае — значение false.true to set the file path used for client resources to the value of the filePath parameter; otherwise false.

Исключения

Путь, указанный в параметре path, отсутствует в корневом каталоге текущего приложения.The path parameter is not in the current application's root directory.

Путь, указанный в параметре filePath, отсутствует в корневом каталоге текущего приложения.The filePath parameter is not in the current application's root directory.

Примеры

Пример кода см. в RewritePath(String) разделе перегрузка метода.For a code example, see the RewritePath(String) method overload.

Комментарии

Параметр не включает содержимое pathInfo параметра. filePathThe filePath parameter does not include the content of the pathInfo parameter. Для URL- http://www.microsoft.com/virdir/page.html/tailадреса filePathпараметримеет http://www.microsoft.com/virdir/page.htmlзначение, а параметр—хвост.pathInfoFor the URL http://www.microsoft.com/virdir/page.html/tail, the filePath parameter is http://www.microsoft.com/virdir/page.html, and the pathInfo parameter is tail.

Чтобы гарантировать, что виртуальный путь, используемый для создания путей к ресурсам, не изменялся, задайте setClientFilePath для falseпараметра значение.To ensure that the virtual path that is used to construct paths to resources is not modified, set the setClientFilePath parameter to false. Распространенный сценарий, в котором может потребоваться задать setClientFilePath false значение, если требуется переписать URL-адрес, и вы используете темы и перенаправляете URL-адрес ресурса, расположенного в папке, отличной от папки запрошенного ресурса.A common scenario in which you might want to set setClientFilePath to false is when you need to rewrite the URL, and you are using themes and redirecting the URL to a resource located in a different folder than the requested resource.

Переписывание URL-адресов полезно, если необходимо изменить структуру страниц веб-приложения и убедиться, что пользователи с закладками прежних URL-адресов смогут продолжать использовать их после перемещения страниц.URL rewriting is useful when you want to restructure the pages in your Web application, and you want to make sure that people who have bookmarked old URLs can still use them after you have moved pages. Переписывание URL-адресов позволяет прозрачно пересылать запросы на новое расположение страницы.URL rewriting enables you to transparently forward requests to the new page location.

Если вы хотите разрешить сайту использовать URL-адреса, которые более понятны и оптимизированы для поисковых систем, более надежная альтернатива заключается в использовании маршрутизации ASP.NET.If you want to enable a site to use URLs that are more user-friendly and are optimized for search engines, a more robust alternative is to use ASP.NET routing. Дополнительные сведения см. в разделе ASP.NET Routing.For more information, see ASP.NET Routing.

Дополнительно

RewritePath(String, String, String) RewritePath(String, String, String) RewritePath(String, String, String) RewritePath(String, String, String)

Перезаписывает URL-адрес, используя заданный путь, сведения о пути и данные строки запроса.Rewrites the URL by using the given path, path information, and query string information.

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 String String String

Внутренний путь перезаписи.The internal rewrite path.

pathInfo
String String String String

Дополнительные сведения о пути для ресурса.Additional path information for a resource. Для получения дополнительной информации см. PathInfo.For more information, see PathInfo.

queryString
String String String String

Строка очереди запросов.The request query string.

Исключения

Путь, указанный в параметре path, отсутствует в корневом каталоге текущего приложения.The path parameter is not in the current application's root directory.

Путь, указанный в параметре filePath, отсутствует в корневом каталоге текущего приложения.The filePath parameter is not in the current application's root directory.

Примеры

Пример кода, включая пример перегрузки этого метода, см. в RewritePath(String) разделе перегрузка метода.For a code example, including an example of this method overload, see the RewritePath(String) method overload.

Комментарии

RewritePath Метод перенаправляет запрос ресурса на другой ресурс, не изменяя URL-адрес.The RewritePath method redirects a request for a resource to another resource without changing the URL.

Параметр не включает содержимое pathInfoпараметра. filePathThe filePath parameter does not include the pathInfo parameter content. Для URL- http://www.microsoft.com/virdir/page.html/tailадреса filePathпараметримеет http://www.microsoft.com/virdir/page.htmlзначение, а параметр—хвост.pathInfoFor the URL http://www.microsoft.com/virdir/page.html/tail, the filePath parameter is http://www.microsoft.com/virdir/page.html, and the pathInfo parameter is tail.

Переписывание URL-адресов полезно, если необходимо изменить структуру страниц веб-приложения и убедиться, что пользователи с закладками прежних URL-адресов смогут продолжать использовать их после перемещения страниц.URL rewriting is useful when you want to restructure the pages in your Web application, and you want to make sure that people who have bookmarked old URLs can still use them after you have moved pages. Переписывание URL-адресов позволяет прозрачно пересылать запросы на новое расположение страницы.URL rewriting enables you to transparently forward requests to the new page location.

Если вы хотите разрешить сайту использовать URL-адреса, которые более понятны и оптимизированы для поисковых систем, более надежная альтернатива заключается в использовании маршрутизации ASP.NET.If you want to enable a site to use URLs that are more user-friendly and are optimized for search engines, a more robust alternative is to use ASP.NET routing. Дополнительные сведения см. в разделе ASP.NET Routing.For more information, see ASP.NET Routing.

Дополнительно

RewritePath(String, Boolean) RewritePath(String, Boolean) RewritePath(String, Boolean) RewritePath(String, Boolean)

Перезаписывает URL-адрес используя заданный путь и логическое значение, которое указывает, был ли изменен виртуальный путь к ресурсам сервера.Rewrites the URL using the given path and a Boolean value that specifies whether the virtual path for server resources is modified.

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 String String String

Внутренний путь перезаписи.The internal rewrite path.

rebaseClientPath
Boolean Boolean Boolean Boolean

Значение true для выполнения сброса виртуального пути; значение false для того, чтобы оставить виртуальный путь без изменений.true to reset the virtual path; false to keep the virtual path unchanged.

Исключения

Параметр path имеет значение null.The path parameter is null.

Путь, указанный в параметре path, отсутствует в корневом каталоге текущего приложения.The path parameter is not in the current application's root directory.

Примеры

Пример кода см. в RewritePath(String) разделе перегрузка метода.For a code example, see the RewritePath(String) method overload.

Комментарии

Метод вызывается HttpContext.RewritePath(String) методом с параметром, для rebaseClientPath trueкоторого задано значение. HttpContext.RewritePath(String, Boolean)The HttpContext.RewritePath(String, Boolean) method is called by the HttpContext.RewritePath(String) method with the rebaseClientPath parameter set to true. Чтобы гарантировать, что виртуальный путь, используемый для создания путей к ресурсам, не изменялся, задайте rebaseClientPath для falseпараметра значение.To ensure that the virtual path that is used to construct paths to resources is not modified, set the rebaseClientPath parameter to false. Распространенный сценарий, в котором может потребоваться задать rebaseClientPath false значение, если требуется переписать URL-адрес, и вы используете темы и перенаправляете URL-адрес ресурса, расположенного в папке, отличной от папки запрошенного ресурса.A common scenario in which you might want to set rebaseClientPath to false is when you need to rewrite the URL, and you are using themes and redirecting the URL to a resource located in a different folder than the requested resource.

Переписывание URL-адресов полезно, если необходимо изменить структуру страниц веб-приложения и убедиться, что пользователи с закладками прежних URL-адресов смогут продолжать использовать их после перемещения страниц.URL rewriting is useful when you want to restructure the pages in your Web application, and you want to make sure that people who have bookmarked old URLs can still use them after you have moved pages. Переписывание URL-адресов позволяет прозрачно пересылать запросы на новое расположение страницы.URL rewriting enables you to transparently forward requests to the new page location.

Если вы хотите разрешить сайту использовать URL-адреса, которые более понятны и оптимизированы для поисковых систем, более надежная альтернатива заключается в использовании маршрутизации ASP.NET.If you want to enable a site to use URLs that are more user-friendly and are optimized for search engines, a more robust alternative is to use ASP.NET routing. Дополнительные сведения см. в разделе ASP.NET Routing.For more information, see ASP.NET Routing.

Дополнительно

RewritePath(String) RewritePath(String) RewritePath(String) RewritePath(String)

Перезаписывает URL-адрес используя заданный путь.Rewrites the URL using the given path.

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

Параметры

path
String String String String

Внутренний путь перезаписи.The internal rewrite path.

Исключения

Параметр path имеет значение null.The path parameter is null.

Путь, указанный в параметре path, отсутствует в корневом каталоге текущего приложения.The path parameter is not in the current application's root directory.

Примеры

В следующем примере показано, как использовать RewritePath метод, чтобы разрешить веб-сайту отвечать на URL-адреса, не отражающие структуру файлов на веб-сайте.The following example shows how to use the RewritePath method to enable a Web site to respond to URLs that do not reflect the file structure in the Web site. Первый блок кода — это веб-страница ASP.NET с именем RewritePath. aspx.The first block of code is an ASP.NET Web page that is named RewritePath.aspx. Для этого требуется строка запроса.It requires a query string. Если веб-сайт имеет имя Website1, URL-адрес http://localhost/WebSite1/RewritePath.aspx?page=1 отображает «стр. 1» в браузере.If the name of your site is WebSite1, the URL http://localhost/WebSite1/RewritePath.aspx?page=1 displays "Page 1" in the browser. Блок кода, следующий за веб-страницей, является Application_BeginRequest обработчиком событий в файле Global. asax.The block of code that follows the Web page is the Application_BeginRequest event handler in the Global.asax file. Этот код перехватывает запросы URL-адресов, http://localhost/WebSite1/page1 такие как, и преобразует их в форму, необходимую для RewritePath. aspx перед обработкой.This code intercepts requests for URLs such as http://localhost/WebSite1/page1 and converts them to the form that is required for RewritePath.aspx before they are processed. Таким образом, URL http://localhost/WebSite1/page1 -адрес вызывает RewritePath. aspx с параметром строки запроса, который отображает «стр. 1» в браузере.Therefore, the URL http://localhost/WebSite1/page1 invokes RewritePath.aspx with the query-string parameter that displays "Page 1" in the browser. При получении URL-адреса http://localhost/WebSite1/page1 , такого как, вызывается RewritePath перегрузка метода, позволяющая PathInfo предоставить значение для свойства, а также параметр строки запроса.If a URL such as http://localhost/WebSite1/page1 is received, an overload of RewritePath is invoked that enables you to provide a value for the PathInfo property as well as a query string parameter.

<%@ 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-адресом.The RewritePath(String) method redirects a request for a resource to a different path than the one that is indicated by the requested URL. Если необходимо сбросить виртуальный путь таким образом, чтобы запросы от клиента для ресурсов сервера разрешаются правильно, используйте перегрузку этого метода, которая принимает rebaseClientPath параметр, и присвойте falseпараметру значение.If you have to reset the virtual path so that requests from the client for server resources resolve correctly, use the overload of this method that takes the rebaseClientPath parameter and set the parameter to false.

Переписывание URL-адресов полезно, если необходимо изменить структуру страниц веб-приложения и убедиться, что пользователи с закладками прежних URL-адресов смогут продолжать использовать их после перемещения страниц.URL rewriting is useful when you want to restructure the pages in your Web application, and you want to make sure that people who have bookmarked old URLs can still use them after you have moved pages. Переписывание URL-адресов позволяет прозрачно пересылать запросы на новое расположение страницы.URL rewriting enables you to transparently forward requests to the new page location.

Если вы хотите разрешить сайту использовать URL-адреса, которые более понятны и оптимизированы для поисковых систем, более надежная альтернатива заключается в использовании маршрутизации ASP.NET.If you want to enable a site to use URLs that are more user-friendly and are optimized for search engines, a more robust alternative is to use ASP.NET routing. Дополнительные сведения см. в разделе ASP.NET Routing.For more information, see ASP.NET Routing.

Дополнительно

Применяется к