HttpContext.RewritePath Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перенаправляет запрос ресурса на другой путь, отличный от пути, указанного запрошенным URL-адресом. RewritePath используется в состоянии сеанса без файлов cookie для удаления идентификаторов сеансов из URL-адресов.
Перегрузки
| Имя | Описание |
|---|---|
| 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
true Чтобы задать путь к файлу, используемый для клиентских ресурсов, значение filePath параметра; в противном случае false.
Исключения
Параметр path не находится в корневом каталоге текущего приложения.
Параметр filePath не находится в корневом каталоге текущего приложения.
Примеры
Пример кода см. в разделе перегрузки RewritePath(String) метода.
Комментарии
Параметр filePath не включает содержимое pathInfo параметра. Для URL-адреса http://www.microsoft.com/virdir/page.html/tailfilePath параметр имеет http://www.microsoft.com/virdir/page.htmlзначение , а pathInfo параметр является хвостом.
Чтобы убедиться, что виртуальный путь, используемый для создания путей к ресурсам, не изменяется, задайте setClientFilePath для параметра значение false. Распространенный сценарий, в котором может потребоваться задать setClientFilePathfalse значение, заключается в том, когда необходимо перезаписать URL-адрес, и вы используете темы и перенаправляете URL-адрес в ресурс, расположенный в другой папке, чем запрошенный ресурс.
Перезапись URL-адресов полезна, если вы хотите реструктурировать страницы в веб-приложении, и вы хотите убедиться, что пользователи, которые закладывают старые URL-адреса, по-прежнему могут использовать их после перемещения страниц. Перезапись URL-адресов позволяет прозрачно пересылать запросы в новое расположение страницы.
Если вы хотите включить сайт для использования URL-адресов, которые более удобны для пользователей и оптимизированы для поисковых систем, более надежная альтернатива — использовать ASP.NET маршрутизацию. Дополнительные сведения см. в разделе ASP.NET Маршрутизация.
См. также раздел
- 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/tailfilePath параметр имеет http://www.microsoft.com/virdir/page.htmlзначение , а pathInfo параметр является хвостом.
Перезапись URL-адресов полезна, если вы хотите реструктурировать страницы в веб-приложении, и вы хотите убедиться, что пользователи, которые закладывают старые URL-адреса, по-прежнему могут использовать их после перемещения страниц. Перезапись URL-адресов позволяет прозрачно пересылать запросы в новое расположение страницы.
Если вы хотите включить сайт для использования URL-адресов, которые более удобны для пользователей и оптимизированы для поисковых систем, более надежная альтернатива — использовать ASP.NET маршрутизацию. Дополнительные сведения см. в разделе ASP.NET Маршрутизация.
См. также раздел
- 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) параметром rebaseClientPathtrue. Чтобы убедиться, что виртуальный путь, используемый для создания путей к ресурсам, не изменяется, задайте rebaseClientPath для параметра значение false. Распространенный сценарий, в котором может потребоваться задать rebaseClientPathfalse значение, заключается в том, когда необходимо перезаписать URL-адрес, и вы используете темы и перенаправляете URL-адрес в ресурс, расположенный в другой папке, чем запрошенный ресурс.
Перезапись URL-адресов полезна, если вы хотите реструктурировать страницы в веб-приложении, и вы хотите убедиться, что пользователи, которые закладывают старые URL-адреса, по-прежнему могут использовать их после перемещения страниц. Перезапись URL-адресов позволяет прозрачно пересылать запросы в новое расположение страницы.
Если вы хотите включить сайт для использования URL-адресов, которые более удобны для пользователей и оптимизированы для поисковых систем, более надежная альтернатива — использовать ASP.NET маршрутизацию. Дополнительные сведения см. в разделе ASP.NET Маршрутизация.
См. также раздел
- 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-адреса, которые не отражают структуру файлов на веб-сайте. Первый блок кода — это веб-страница ASP.NET с именем RewritePath.aspx. Для этого требуется строка запроса. Если имя сайта — WebSite1, URL-адрес http://localhost/WebSite1/RewritePath.aspx?page=1 отображает "Страница 1" в браузере. Блок кода, который следует за веб-страницей, является Application_BeginRequest обработчиком событий в файле Global.asax. Этот код перехватывает запросы для URL-адресов, таких как http://localhost/WebSite1/page1 и преобразует их в форму, необходимую для RewritePath.aspx перед их обработкой. Поэтому URL-адрес http://localhost/WebSite1/page1 вызывает RewritePath.aspx с параметром строки запроса, который отображает "Страница 1" в браузере. При получении URL-адреса http://localhost/WebSite1/page1 вызывается перегрузка 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 Маршрутизация.
См. также раздел
- ASP.NET маршрутизация
- Пошаговое руководство. Использование маршрутизации ASP.NET в приложении веб-форм