Aracılığıyla paylaş


HttpContext.RewritePath Yöntem

Tanım

Bir kaynak isteğini, istenen URL tarafından belirtilenden farklı bir yola yönlendirir. RewritePath , oturum kimliklerini URL'lerden kaldırmak için tanımlama bilgisiz oturum durumunda kullanılır.

Aşırı Yüklemeler

Name Description
RewritePath(String, String, String, Boolean)

Verilen sanal yolu, yol bilgilerini, sorgu dizesi bilgilerini ve istemci dosya yolunun yeniden yazma yoluna ayarlanıp ayarlanmadığını belirten bir Boole değeri kullanarak URL'yi yeniden yazar.

RewritePath(String, String, String)

Verilen yolu, yol bilgilerini ve sorgu dizesi bilgilerini kullanarak URL'yi yeniden yazar.

RewritePath(String, Boolean)

Verilen yolu ve sunucu kaynakları için sanal yolun değiştirilip değiştirilmediğini belirten bir Boole değeri kullanarak URL'yi yeniden yazar.

RewritePath(String)

Verilen yolu kullanarak URL'yi yeniden yazar.

RewritePath(String, String, String, Boolean)

Verilen sanal yolu, yol bilgilerini, sorgu dizesi bilgilerini ve istemci dosya yolunun yeniden yazma yoluna ayarlanıp ayarlanmadığını belirten bir Boole değeri kullanarak URL'yi yeniden yazar.

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)

Parametreler

filePath
String

İsteği karşılayan kaynağın sanal yolu.

pathInfo
String

URL yeniden yönlendirmesi için kullanılacak ek yol bilgileri. Daha fazla bilgi için bkz. PathInfo.

queryString
String

URL yeniden yönlendirmesi için kullanılacak istek sorgusu dizesi.

setClientFilePath
Boolean

true istemci kaynakları için kullanılan dosya yolunu parametresinin filePath değerine ayarlamak için; aksi takdirde false.

Özel durumlar

path parametresi geçerli uygulamanın kök dizininde değil.

filePath parametresi geçerli uygulamanın kök dizininde değil.

Örnekler

Kod örneği için yöntem aşırı yüklemesine RewritePath(String) bakın.

Açıklamalar

filePath parametresi, parametresinin pathInfo içeriğini içermez. URL'si http://www.microsoft.com/virdir/page.html/tailfilePath için parametresi , http://www.microsoft.com/virdir/page.htmlpathInfo parametresi ise tail şeklindedir.

Kaynakların yollarını oluşturmak için kullanılan sanal yolun değiştirilmediğinden emin olmak için parametresini setClientFilePath olarak falseayarlayın. Url'yi yeniden yazmanız gerektiğinde ve temaları kullanıp URL'yi istenen kaynaktan farklı bir klasörde bulunan bir kaynağa yeniden yönlendirdiğinizde bu senaryoya ayarlamak setClientFilePathfalse isteyebilirsiniz.

Web uygulamanızdaki sayfaları yeniden yapılandırmak istediğinizde ve eski URL'leri yer işaretine eklemiş kişilerin sayfaları taşıdıktan sonra bunları kullanmaya devam ettiğinden emin olmak istediğinizde URL yeniden yazma yararlı olur. URL yeniden yazma, istekleri yeni sayfa konumuna saydam bir şekilde iletmenizi sağlar.

Bir sitenin daha kullanıcı dostu ve arama motorları için iyileştirilmiş URL'leri kullanmasını sağlamak istiyorsanız, daha sağlam bir alternatif ASP.NET yönlendirme kullanmaktır. Daha fazla bilgi için bkz. yönlendirme ASP.NET.

Ayrıca bkz.

Şunlara uygulanır

RewritePath(String, String, String)

Verilen yolu, yol bilgilerini ve sorgu dizesi bilgilerini kullanarak URL'yi yeniden yazar.

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)

Parametreler

filePath
String

İç yeniden yazma yolu.

pathInfo
String

Bir kaynak için ek yol bilgileri. Daha fazla bilgi için bkz. PathInfo.

queryString
String

İstek sorgusu dizesi.

Özel durumlar

path parametresi geçerli uygulamanın kök dizininde değil.

filePath parametresi geçerli uygulamanın kök dizininde değil.

Örnekler

Bu yöntem aşırı yükleme örneği de dahil olmak üzere bir kod örneği için bkz RewritePath(String) . yöntem aşırı yüklemesi.

Açıklamalar

yöntemi, RewritePath URL'yi değiştirmeden bir kaynak isteğini başka bir kaynağa yönlendirir.

filePath parametresi, parametre içeriğini içermezpathInfo. URL'si http://www.microsoft.com/virdir/page.html/tailfilePath için parametresi , http://www.microsoft.com/virdir/page.htmlpathInfo parametresi ise tail şeklindedir.

Web uygulamanızdaki sayfaları yeniden yapılandırmak istediğinizde ve eski URL'leri yer işaretine eklemiş kişilerin sayfaları taşıdıktan sonra bunları kullanmaya devam ettiğinden emin olmak istediğinizde URL yeniden yazma yararlı olur. URL yeniden yazma, istekleri yeni sayfa konumuna saydam bir şekilde iletmenizi sağlar.

Bir sitenin daha kullanıcı dostu ve arama motorları için iyileştirilmiş URL'leri kullanmasını sağlamak istiyorsanız, daha sağlam bir alternatif ASP.NET yönlendirme kullanmaktır. Daha fazla bilgi için bkz. yönlendirme ASP.NET.

Ayrıca bkz.

Şunlara uygulanır

RewritePath(String, Boolean)

Verilen yolu ve sunucu kaynakları için sanal yolun değiştirilip değiştirilmediğini belirten bir Boole değeri kullanarak URL'yi yeniden yazar.

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)

Parametreler

path
String

İç yeniden yazma yolu.

rebaseClientPath
Boolean

true sanal yolu sıfırlamak için; false sanal yolu değişmeden tutmak için.

Özel durumlar

path parametresi null'dir.

path parametresi geçerli uygulamanın kök dizininde değil.

Örnekler

Kod örneği için yöntem aşırı yüklemesine RewritePath(String) bakın.

Açıklamalar

HttpContext.RewritePath(String, Boolean) yöntemi, parametresi olarak ayarlanmış yöntemi rebaseClientPath tarafından HttpContext.RewritePath(String) çağrılırtrue. Kaynakların yollarını oluşturmak için kullanılan sanal yolun değiştirilmediğinden emin olmak için parametresini rebaseClientPath olarak falseayarlayın. Url'yi yeniden yazmanız gerektiğinde ve temaları kullanıp URL'yi istenen kaynaktan farklı bir klasörde bulunan bir kaynağa yeniden yönlendirdiğinizde bu senaryoya ayarlamak rebaseClientPathfalse isteyebilirsiniz.

Web uygulamanızdaki sayfaları yeniden yapılandırmak istediğinizde ve eski URL'leri yer işaretine eklemiş kişilerin sayfaları taşıdıktan sonra bunları kullanmaya devam ettiğinden emin olmak istediğinizde URL yeniden yazma yararlı olur. URL yeniden yazma, istekleri yeni sayfa konumuna saydam bir şekilde iletmenizi sağlar.

Bir sitenin daha kullanıcı dostu ve arama motorları için iyileştirilmiş URL'leri kullanmasını sağlamak istiyorsanız, daha sağlam bir alternatif ASP.NET yönlendirme kullanmaktır. Daha fazla bilgi için bkz. yönlendirme ASP.NET.

Ayrıca bkz.

Şunlara uygulanır

RewritePath(String)

Verilen yolu kullanarak URL'yi yeniden yazar.

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

Parametreler

path
String

İç yeniden yazma yolu.

Özel durumlar

path parametresi null'dir.

path parametresi geçerli uygulamanın kök dizininde değil.

Örnekler

Aşağıdaki örnekte, bir Web sitesinin Web sitesindeki dosya yapısını yansıtmayan URL'lere yanıt vermesini sağlamak için yönteminin nasıl kullanılacağı RewritePath gösterilmektedir. İlk kod bloğu, RewritePath.aspx adlı bir ASP.NET Web sayfasıdır. Bir sorgu dizesi gerektirir. Sitenizin adı WebSite1 ise, URL http://localhost/WebSite1/RewritePath.aspx?page=1 tarayıcıda "Sayfa 1" görüntüler. Web sayfasını izleyen kod bloğu, Global.asax dosyasındaki olay işleyicisidir Application_BeginRequest . Bu kod gibi http://localhost/WebSite1/page1 URL'ler için istekleri durdurur ve işlenmeden önce RewritePath.aspx için gereken forma dönüştürür. Bu nedenle URL http://localhost/WebSite1/page1 , tarayıcıda "Sayfa 1" görüntüleyen sorgu dizesi parametresiyle RewritePath.aspx çağırır. Gibi http://localhost/WebSite1/page1 bir URL alınırsa, özelliği için PathInfo bir değer ve sorgu dizesi parametresi sağlamanıza olanak tanıyan bir aşırı yüklemesi RewritePath çağrılır.

<%@ 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

Açıklamalar

yöntemi, RewritePath(String) bir kaynak isteğini istenen URL tarafından belirtilenden farklı bir yola yönlendirir. Sunucu kaynakları için istemciden gelen isteklerin doğru çözümlenmesi için sanal yolu sıfırlamanız gerekiyorsa, parametresini alan rebaseClientPath ve parametresini falseolarak ayarlayan bu yöntemin aşırı yüklemesini kullanın.

Web uygulamanızdaki sayfaları yeniden yapılandırmak istediğinizde ve eski URL'leri yer işaretine eklemiş kişilerin sayfaları taşıdıktan sonra bunları kullanmaya devam ettiğinden emin olmak istediğinizde URL yeniden yazma yararlı olur. URL yeniden yazma, istekleri yeni sayfa konumuna saydam bir şekilde iletmenizi sağlar.

Bir sitenin daha kullanıcı dostu ve arama motorları için iyileştirilmiş URL'leri kullanmasını sağlamak istiyorsanız, daha sağlam bir alternatif ASP.NET yönlendirme kullanmaktır. Daha fazla bilgi için bkz. yönlendirme ASP.NET.

Ayrıca bkz.

Şunlara uygulanır