ASP hata sayfalarina (404) hukmedin

ASP ile klasor seklinde link sistemi forumlarda en cok sorulan sorularin basinda geliyor. Bir cok sitede son zamanlarda Google'da ust siralarda cikmak icin bu yontemi kullanmaya basladi.

Peki bu nasil yapiliyor?
Aslinda gayet basit. Fakat bunun icin sunucunuzda sizin 404 hata sayfalari uzerinde oynayabilmeniz lazim. Bazi sunucular buna izin verir. ornegin yapacagimiz calismada ben hata sayfasini 404.asp olarak belirlediginizi varsayiyorum.

Bundan sonra sitenizde bir dosya bulunamadigi zaman sunucu otomatik olarak 404.asp'yi calistiracaktir. Normalde sunucumuzda boyle bir klasor olmadigindan artik bizim 404.asp ye yonlenecek daha dogrusu adres satiri degismeden sadece 404.asp calistirilacak.

orneklerde kullanacagimiz sayfa adresinide http://www.ayberk.com/blog/51 olarak belirleyelim.

404.asp de ilk yapmamiz gereken "/" isaretleri arasinda kalan kelimeleri ayirmak. Daha sonrada buna gore veritabanindan verileri cagirmamiz gerekiyor;

AdresSatiri = Request.ServerVariables("QUERY_STRING")
Ayrilan = Split(AdresSatiri,"/")


Burda elimize gecen "Ayrilan" verileri;

Ayrilan(0) = "http:"
Ayrilan(1) = ""
Ayrilan(2) = "www.ayberk.com"
Ayrilan(3) = "blog"
Ayrilan(4) = "51"

Bu verilere gorede sayfamizda 51 id'sine sahip yaziyi getirelim.

strSQL = "Select * from Blog where id = "& Cint(Trim(Ayrilan(4))) &" "
Set Rs = Baglanti.Execute(strSQL)


"Ayrilan(3)" verisinide (ki su an "blog") kullanarak birseyler yapabiliriz.

If Ayrilan(3) = "blog" then
strSQL = "Select * from Blog where id = "& Cint(Trim(Ayrilan(4))) &" "
Set Rs = Baglanti.Execute(strSQL)
ElseIf Ayrilan(3) = "kategori" then
strSQL = "Select * from Kategori where id = "& Cint(Trim(Ayrilan(4))) &" "
Set Rs = Baglanti.Execute(strSQL)
Else
'Diger Islemler'
End If


Bir baska link uzerinden gitmek istersek ki bu sefer http://www.ayberk.com/blog-51-ASP_hata_sayfalarina_(404)_hukmedin.html olarak belirleyelim.

Bu sefer iki kere ayirma isleminden gecirmemiz gerekiyor. Ilk ayirma islemi yine "/" isaretleri ikinci ise Ayrilan(3) icindeki "-" isaretleri.

AdresSatiri = Request.ServerVariables("QUERY_STRING")
Ayrilan = Split(AdresSatiri,"/")
Ayrildi = Split(Ayrilan(3),"-")


Burda elimize gecen "Ayrilan" ve "Ayrildi" verileri;

Ayrilan(0) = "http:"
Ayrilan(1) = ""
Ayrilan(2) = "www.ayberk.com"
Ayrilan(3) = "blog-51-ASP_hata_sayfalarina_(404)_hukmedin.html"
Ayrildi(0) = "blog"
Ayrildi(1) = "51"
Ayrildi(2) = "ASP_hata_sayfalarina_(404)_hukmedin.html"

Elimizdeki verilere gore yeni komut cumlemiz;

strSQL = "Select * from Blog where id = "& Cint(Trim(Ayrildi(1))) &" "
Set Rs = Baglanti.Execute(strSQL)


Yine ayni sekilde bir onceki ornegimizde kullandigimiz gibi "blog" verisini kullanarak islem yapalim;

If Ayrildi(0) = "blog" then
strSQL = "Select * from Blog where id = "& Cint(Trim(Ayrildi(1))) &" "
Set Rs = Baglanti.Execute(strSQL)
ElseIf Ayrildi(0) = "kategori" then
strSQL = "Select * from Kategori where id = "& Cint(Trim(Ayrildi(1))) &" "
Set Rs = Baglanti.Execute(strSQL)
Else
'Diger Islemler'
End If


  • personAyberk Atasay
  • calendar_monthSeptember 2, 2008
  • categoryASP
  • sharepaylaş
  • Eski Yorumlar:
  • webim
  • abtblog seo'lu hali ile ne zaman dagitilacak.
  • 2008-11-02 22:25:35
  • Ayberk Atasay
  • En kisa surede yayinlamayi planliyorum.. Net bir tarih veremiyorum malum is hayati bi, yandan (: ama en kisa surede yayinliycam..
  • 2008-11-02 23:30:49
  • Muhammet
  • merhabalar; bu sizin anlattiginizi uyguladim cok guzel calisiyor fakat sayfa=trim(guvenlik(Request.QueryString("sayfa"))) if sayfa= "" then sayfa=1 end if if rshaberkatgoster.eof then ileri geri yapmak icin request.querystring kullaniyorum <a href=../haber/<%=(uzanti_bol(0))%>-guncel.html&sayfa=<%=i%>> fakat sayfa yi string ile cekmiyor...
  • 2008-11-28 00:45:33