Ayberk Atasay

ASP, CSS, Internet konuları üzerine paylaşımlar


ASP hata sayfalarına (404) hükmedin

ASP ile klasör şeklinde link sistemi forumlarda en çok sorulan soruların başında geliyor. Bir çok sitede son zamanlarda Google'da üst sıralarda çıkmak için bu yöntemi kullanmaya başladı.

Peki bu nasıl yapılıyor?
Aslında gayet basit. Fakat bunun için sunucunuzda sizin 404 hata sayfaları üzerinde oynayabilmeniz lazım. Bazı sunucular buna izin verir. Örneğin yapacağımız çalışmada ben hata sayfasını 404.asp olarak belirlediğinizi varsayıyorum.

Bundan sonra sitenizde bir dosya bulunamadığı zaman sunucu otomatik olarak 404.asp'yi çalıştıracaktır. Normalde sunucumuzda böyle bir klasör olmadığından artık bizim 404.asp ye yönlenecek daha doğrusu adres satırı değişmeden sadece 404.asp çalıştırılacak.

Örneklerde kullanacağımız sayfa adresinide http://www.ayberk.com/blog/51 olarak belirleyelim.

404.asp de ilk yapmamız gereken "/" işaretleri arasında kalan kelimeleri ayırmak. Daha sonrada buna göre veritabanından verileri çağırmamız gerekiyor;

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


Burda elimize geçen "Ayrilan" verileri;

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

Bu verilere görede sayfamızda 51 id'sine sahip yazıyı getirelim.

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


"Ayrilan(3)" verisinide (ki şu an "blog") kullanarak birşeyler 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
'Diğer İşlemler'
End If


Bir başka link üzerinden gitmek istersek ki bu sefer http://www.ayberk.com/blog-51-ASP_hata_sayfalarina_(404)_hukmedin.html olarak belirleyelim.

Bu sefer iki kere ayırma işleminden geçirmemiz gerekiyor. İlk ayırma işlemi yine "/" işaretleri ikinci ise Ayrilan(3) içindeki "-" işaretleri.

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


Burda elimize geçen "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 göre yeni komut cümlemiz;

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


Yine aynı şekilde bir önceki örneğimizde kullandığımız gibi "blog" verisini kullanarak işlem yapalım;

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
'Diğer İşlemler'
End If

ASPAyberk Atasay2 Eylül 2008, SalıEkle Bunu
Önceki Kayıt
Sonraki Kayıt
Yorumlar
Muhammet
28 Kasım 2008, Cuma
merhabalar;

bu sizin anlattıgınızı uyguladım çok guzel çalışıyor fakat

sayfa=trim(guvenlik(Request.QueryString("sayfa")))
if sayfa= "" then
sayfa=1
end if
if rshaberkatgoster.eof then

ileri geri yapmak için request.querystring kullanıyorum

<a href=../haber/<%=(uzanti_bol(0))%>-guncel.html&sayfa=<%=i%>>

fakat sayfa yı string ile çekmiyor...
Ayberk Atasay
2 Kasım 2008, Pazar
En kısa sürede yayınlamayı planlıyorum..
Net bir tarih veremiyorum malum iş hayatı bi, yandan (: ama en kısa sürede yayınlıycam..
webim
2 Kasım 2008, Pazar
abtblog seo'lu hali ile ne zaman dağıtılacak.
Yorum Yaz

İsim (*)

e-Posta (*) (Yayımlanmayacak)

URL




Resmi Değiştir
Güvenlik Kodu (Yukarıda gördüğünüz karakterleri yazınız)


ayberk.net - web tasarim izmir web sitesi
Copyright © 2008 ayberk.com | Bu sitenin kodlaması ve teması Ayberk Atasay tarafından hazırlanmıştır. | XHTML 1.0