Kategori : Asp.Net

Asp.Net İle URL Rewrite 11
Ağustos
     
 
Birçok internet sitesinde karılaştıgımız haber-basligi-.aspx şeklinde linkler kuşkusuz hepimizin dikkatini çekmiştir. Bu tür linkler arama motorlarında üst sıralarda olmak çok büyük önem taşımaya başladı.  Bu bağlamda site sahiplerinin (ya da geliştiricilerinin) bazı kurallara ve ince noktalara dikkat etmeleri gerekmektedir.
 
Öncelik olarak datalistimize (isteginize göre gridview vb..)  bilgilerimizi yüklüyoruz.
<asp:DataList ID="DataList1" runat="server" Width="673px" BorderWidth="0px">
<%#DataBinder.Eval(Container.DataItem, "baslik")%>a>
 
<%#DataBinder.Eval(Container.DataItem, "kısaozet")%>a>
 
//yazımızın devamı için kod taraafında yazmış oldugumuz gelen id degerini filtreliyoruz
 
<a href='<%#urldegis(Container.DataItem("id"))%>' class="devam">
devam&#305;...&nbsp;&nbsp;a>
    ItemTemplate>
asp:DataList>
 
 
 Sub bilgilerimiyukle()
 
‘ Bilgilerimi datalistime yüklemek için baglantı cümlerimi yazıp ‘adaptermızı doldurdutan sonra degerimizi bind ediyoruz
 
        Dim cumlem As String = "SELECT * FROM bilgilerin-gelecegi-tablo"
        Dim adapter As New OdbcDataAdapter(cumlem, baglanti)
        Dim dat As New DataTable
        adapter.Fill(dat)
        Me.DataList1.DataSource = dat
        Me.DataList1.DataBind()
 End Sub
Bir Sonraki aşamamızda gelen makale id degerimize gore başlık biligisini alarak degerlerimizi replace ediyoruz.
      Public Function urldegis(ByVal _makaleid As Integer) As String
        ' ilk once haberin baslik bilgisini alalım ...
 
        Dim adapter As New OdbcDataAdapter("Select basliginiz from tablonuz where id=" & _makaleid, baglanti)
        Dim dt As New DataTable
        adapter.Fill(dt)
        Dim _haberbilgi As String = dt.Rows(0)("basliginiz").ToString.ToLower()
 
        ' turkce karakterlerimizi duzenleyelim ki anlamsız karakterler gormeyelim ...
        _haberbilgi = _haberbilgi.Replace("-", "")
        _haberbilgi = _haberbilgi.Replace("ç", "c")
        _haberbilgi = _haberbilgi.Replace("ı", "i")
        _haberbilgi = _haberbilgi.Replace("ş", "s")
        _haberbilgi = _haberbilgi.Replace("\", "")
        _haberbilgi = _haberbilgi.Replace(" ", "-")
        _haberbilgi = _haberbilgi.Replace("<", "")
        _haberbilgi = _haberbilgi.Replace("ğ", "g")
        _haberbilgi = _haberbilgi.Replace("ö", "o")
        _haberbilgi = _haberbilgi.Replace("ü", "u")
        _haberbilgi = _haberbilgi.Replace("'", "")
        _haberbilgi = _haberbilgi.Replace("/", "")
        _haberbilgi = _haberbilgi.Replace("(", "")
        _haberbilgi = _haberbilgi.Replace(")", "")
        _haberbilgi = _haberbilgi.Replace("{", "")
        _haberbilgi = _haberbilgi.Replace("}", "")
        _haberbilgi = _haberbilgi.Replace("%", "")
        _haberbilgi = _haberbilgi.Replace("&", "")
        _haberbilgi = _haberbilgi.Replace("+", "")
        _haberbilgi = _haberbilgi.Replace(".", "-")
        _haberbilgi = _haberbilgi.Replace("?", "")
        _haberbilgi = _haberbilgi.Replace(",", "")
        _haberbilgi = _haberbilgi.Replace(":", "")
        ' replace ettiğimiz degerimizi return ediyoruz
        ' ornek  : 3-Haber-baslık.aspx
        Return _makaleid.ToString() + "-makale-" & _haberbilgi & ".aspx"
 
 
    End Function
 
Global.asax sayfamızda
 
    Private Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
        ' gelen url degerimizi alalım ...
        Dim Yolbilgisi As String = Request.RawUrl
        If Yolbilgisi.Contains("-makale-") Then
            ' –makale- olup olmadıgını kontrol edelim
            Dim GelenDegerler As String() = System.IO.Path.GetFileName(Yolbilgisi).Split("-"c)
             Context.RewritePath("yazidevam.aspx", "", "Id=" & GelenDegerler(0), True)
        End If
       
       
    End Sub
Sonraki aşamamızda gelen makale id degerimize gore makalemizi yüklüyoruz
 
   If Request.QueryString("id") <> Nothing Then
                yukle(Request.QueryString("id"))
  End If
 
 Sub yukle(ByVal degerim As Integer)
        Dim cumlem As String = "SELECT * FROM tablonuz where id=" & degerim
        Dim adapter As New OdbcDataAdapter(cumlem, baglanti)
        Dim dat As New DataTable
        adapter.Fill(dat)
        Me.DataList1.DataSource = dat
        Me.DataList1.DataBind()
    End Sub
Ayrıca baglantımızı yapmak için web.configimize baglantımızı eklemeyi unutmuyoruz.
      <connectionStrings>
            <addname="baglanti"connectionString=”baglantı cümlesi
      connectionStrings>

 

 
 

  Yorumlar
 
   
  Abdurrahman KIZMAZ  
  11.8.2010  
  çok faydalı bir bilgi emeğine sağlık  

  Yorum Yaz
 
     
   Ad Soyad    
   E- Posta