Aracılığıyla paylaş


HttpContext.RewritePath Yöntem

Tanım

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

Aşırı Yüklemeler

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ğe hizmet veren 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 sorgu 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, parametrenin pathInfo içeriğini içermez. URL http://www.microsoft.com/virdir/page.html/tailfilePath için parametresi , http://www.microsoft.com/virdir/page.htmlpathInfo parametresi ise kuyruk ş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 ayarlamak setClientFilePathfalse isteyebileceğiniz yaygın bir senaryodur.

Url yeniden yazma, Web uygulamanızdaki sayfaları yeniden yapılandırmak istediğinizde ve eski URL'leri yer işaretine eklemiş olan kişilerin sayfaları taşıdıktan sonra bunları kullanmaya devam ettiğinden emin olmak istediğinizde yararlıdır. 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, ASP.NET yönlendirmeyi kullanmak daha sağlam bir alternatiftir. Daha fazla bilgi için bkz. ASP.NET Yönlendirme.

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

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

queryString
String

İstek sorgu 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üklemesinin bir ö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 http://www.microsoft.com/virdir/page.html/tailfilePath için parametresi , http://www.microsoft.com/virdir/page.htmlpathInfo parametresi ise kuyruk şeklindedir.

Url yeniden yazma, Web uygulamanızdaki sayfaları yeniden yapılandırmak istediğinizde ve eski URL'leri yer işaretine eklemiş olan kişilerin sayfaları taşıdıktan sonra bunları kullanmaya devam ettiğinden emin olmak istediğinizde yararlıdır. 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, ASP.NET yönlendirmeyi kullanmak daha sağlam bir alternatiftir. Daha fazla bilgi için bkz. ASP.NET Yönlendirme.

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 parametresidirnull.

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ış şekilde 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 ayarlamak rebaseClientPathfalse isteyebileceğiniz yaygın bir senaryodur.

Url yeniden yazma, Web uygulamanızdaki sayfaları yeniden yapılandırmak istediğinizde ve eski URL'leri yer işaretine eklemiş olan kişilerin sayfaları taşıdıktan sonra bunları kullanmaya devam ettiğinden emin olmak istediğinizde yararlıdır. 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, ASP.NET yönlendirmeyi kullanmak daha sağlam bir alternatiftir. Daha fazla bilgi için bkz. ASP.NET Yönlendirme.

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 parametresidirnull.

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 bunları 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

RewritePath(String) yöntemi, 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.

Url yeniden yazma, Web uygulamanızdaki sayfaları yeniden yapılandırmak istediğinizde ve eski URL'leri yer işaretine eklemiş olan kişilerin sayfaları taşıdıktan sonra bunları kullanmaya devam ettiğinden emin olmak istediğinizde yararlıdır. 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, ASP.NET yönlendirmeyi kullanmak daha sağlam bir alternatiftir. Daha fazla bilgi için bkz. ASP.NET Yönlendirme.

Ayrıca bkz.

Şunlara uygulanır