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