Google Fan Webmaster Forum - Tekil Mesaj Gösterimi - ASP SEO (404 hatası ile, zaten başka yolu yok)
Tekil Mesaj Gösterimi
  #1 (permalink)  
Eski 11-09-2007, 17:39:29
Tuncsoft - ait Avatar
Tuncsoft Tuncsoft isimli üyemiz çevrimdışıdır. (Offline)
 
İstanbul Anadolu Şubesi
Nerden: Istanbul / Uskudar
Yaş: 28
Mesajlar: 208
iTrader Puanı: (4)
iTrader Feedback: (100%)
Rep puanı: 5
Tuncsoft isimli üyemiz hakkına hiçbir bilgimiz yok.
Tuncsoft - MSN üzerinden Mesaj gönder Send a message via Skype™ to Tuncsoft
Post ASP SEO (404 hatası ile, zaten başka yolu yok)

404hata.asp
PHP Kodu:
<%
Dim istekurl
Dim istekbolum
Dim istek1
Dim istek2

istek1
="video"
istek2="videoarsiv"

Set istekurl Request.ServerVariables("QUERY_STRING"
istekbolum Split(istekurl,"/")

If 
istekbolum("3") = istek1 Then
    Server
.Execute("video.asp")

Elseif 
istekbolum("3") = istek2 Then
    Server
.Execute("videoarsiv.asp")

Else

Response.Write ("Aradığınız sayfa bulunamadı")

End if
%> 
video.asp
PHP Kodu:
<%
Set istekurl Request.ServerVariables("QUERY_STRING"
istekbolum Split(istekurl,"/")

ID istekbolum("4")

If 
Not Isnumeric(IDThen Response.Redirect "index.asp"

filePath Server.MapPath("database.mdb")
Set dbcon Server.CreateObject("ADODB.Connection")
dbcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" filePath

Set rs 
Server.CreateObject("Adodb.Recordset")
sql="SELECT * FROM tblvideo WHERE idno="&ID&" "
rs.Open sql,dbcon,1

If rs.Eof Then
Response
.Write ("Aradığınız Video Bulunamadı")

Else

Response.Write rs("videoadi")

End if

rs.Close
Set rs 
Nothing
%> 
videoarsiv.asp
PHP Kodu:
<%
Set istekurl Request.ServerVariables("QUERY_STRING"
istekbolum Split(istekurl,"/")

filePath Server.MapPath("database.mdb")
Set dbcon Server.CreateObject("ADODB.Connection")
dbcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" filePath

Set rs 
Server.CreateObject("Adodb.Recordset")
sql="SELECT * FROM tblvideo ORDER BY idno DESC"
rs.Open sql,dbcon,1

On error Resume Next
page 
CInt(istekbolum("4"))
If (
page ="" or page 0Then page Else page=page
rs
.pageSize10
rs
.absolutePage=page

Do While Not rs.Eof and i<rs.pagesize
i
=i+1

Response
.Write ("<br><a href=""http://www.siteadi.com/video/"&rs("idno")&"/"&cevir(rs("videoadi"))&".htm"">"&rs("videoadi")&"</a>")

rs.Movenext
Loop

If page 1 Then
Response
.Write " "
Else
page -1
Response
.Write "<a  href=" qstring &"><<  Önceki    </a> "
End If
If 
page rs.pagecount Then
rs.pagecount
Else
page 5
End 
If
If 
page 5 Then
1
Else
page 5
End 
If
For 
c To b
If page Then
Response
.Write "[<b>" "</b>]  "
Else
Response.Write "<a href=" qstring &">" "</a>  "
End If
Next
If page rs.pagecount Then
Response
.Write " "
Else
page 1
Response
.Write "<a href=" qstring &">    Sonraki >></a> "
End If
%> 
Yukarıda Kullanmış olduğumuz cevir fonksiyonu için
cevir.asp
PHP Kodu:
<%
Function 
cevir(data)
data Replace (data ,"ı","i",1,-1,1)
data Replace (data ,"ğ","g",1,-1,1)
data Replace (data ,"ü","u",1,-1,1)
data Replace (data ,"ş","s",1,-1,1)
data Replace (data ,"ö","o",1,-1,1)
data Replace (data ,"ç","c",1,-1,1)
data Replace (data ,"I","i",1,-1,1)
data Replace (data ,"Ğ","g",1,-1,1)
data Replace (data ,"Ü","u",1,-1,1)
data Replace (data ,"Ş","s",1,-1,1)
data Replace (data ,"İ","i",1,-1,1)
data Replace (data ,"Ç","c",1,-1,1)
data Replace (data ,"Ö","o",1,-1,1)
data Replace (data ," ","-",1,-1,1)
cevir=data
End 
Function
%> 
Şimdi 404 mantığı ile asp de SEO uyumu yapmayı anlatmaya başlayalım.
Bilindiği gibi Linux ve .php kullandığınız zaman SEO uyumu yapmak için .htaccess dosyasından faydalanılır eğer Windows ve .asp kullanıyorsanız bu işlemi gerçekleştirmek için 404 sayfa bulunamadı hatasından faydalanmak gerekir, Öncelikle 404 hatasını anlatalım.
Eğer sunucu yönetim paneliniz Plesk ise Ayarlar kısmından özel hata sayfa kullanımı açmanız daha sonra webdizinlerine girip hata sayfaları kısmına geçip 404 not found ayarını açıp ayarını URL yapıp kutucuğuna
Code:
 /404hatasi.asp
yazıp onaylamanız gerekiyor, eğer URL olarak seçmezseniz .asp dosyası düz metin olarak algılanacaktır.
Unutulmaması gereken 404 hata dosyamız ilgili sayfa bulunamadığı zaman çalışacaktır.
Sıra geldi cevir.asp nin işlevine, bilindiği gibi web tarayıcılarında Türkçe karakter destek yoktur, zaten internette ingilizce hariç bir dil kullanımı yoktur, global Dünyadaki işlevsel nedenine burada değinmeyeceğiz.
cevir fonksiyonu Türkçe karakterleri inglizce karakterlerlere çevirecek.
Sıra geldi video.asp ye, Tüm .asp cilerin vede .php cilerin bildiği gibi bir sayfa veritabanından bilgi alacağımız ve ekrana göstereceğimizde Request fonksiyonunu kullanırız, ÖRN : video.asp?id=1 burada id=1 de yere alan 1 i kullanarak veritabanından 1 nolu kaydı ekrana yazdırırız,
artık Request.QueryString yerine Request.ServerVariables("QUERY_STRING") i kullanacağız ve Web tarayısından gelen yazıları alacağız.
ornek.com de biz Request.ServerVariables("QUERY_STRING") imizi video.asp?id=1 yerine kullanmak istiyoruz ve / ları sayıyoruz ve 4. / dan sonra gelen isteği aldırmak için
Code:
<%
Set istekurl = Request.ServerVariables("QUERY_STRING") 
istekbolum = Split(istekurl,"/")
ID = istekbolum("4") '4. / dan sonrasını al
%>
kullanıyoruz.

Burada http://www.ornek.com/video/1/ornek-video.htm şeklinde SEO uyumu yapmayı öğrendik, Eğer http://www.ornek.com/video-1-ornek-video.htm şeklinde yapmak istersek, 404hatasi.asp dosyamızda, video.asp dosyamızda ve videoarsiv.asp dosyamızda birtakım değişiklikler yapmamız gerekir, Nedir bunlar , Ne şekilde olacak ?

404hatasi.asp
PHP Kodu:
<%
Dim istekurl
Dim istekbolum
Dim istekbolum2
Dim parcala
Dim isteksayfa
Dim istek1
Dim gostersayfa1
Dim gostersayfa2

gostersayfa1
="video"
gostersayfa2="videoarsiv"

Set istekurl Request.ServerVariables("QUERY_STRING"
istekbolum Split(istekurl,"/")

istekbolum2=istekbolum(3)
parcala=split(istekbolum2,"-")
isteksayfa=parcala(0)



If 
isteksayfa=gostersayfa1 Then
    Server
.Execute("video.asp")

Elseif 
isteksayfa=gostersayfa2 Then
    Server
.Execute("videoarsiv.asp")

Else
Response.Write ("Aradığınız sayfa bulunamadı")
End if
%> 
video.asp
PHP Kodu:
<%
Set istekurl Request.ServerVariables("QUERY_STRING"
istekbolum Split(istekurl,"/")

istekbolum2=istekbolum(3)
parcala=split(istekbolum2,"-")
IDno=parcala(1)

If 
Not Isnumeric(IDnoThen Response.Redirect "index.asp"


filePath Server.MapPath("database.mdb")
Set dbcon Server.CreateObject("ADODB.Connection")
dbcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" filePath

Set rs 
Server.CreateObject("Adodb.Recordset")
sql="SELECT * FROM tblvideo WHERE idno="&IDno&" "
rs.Open sql,dbcon,1

If rs.Eof Then
Response
.Write ("Aradığınız Video Bulunamadı")

Else

Response.Write rs("videoadi")
End if

rs.Close
Set rs 
Nothing

%> 
videoarsiv.asp
PHP Kodu:
<%
On error Resume Next

Set istekurl 
Request.ServerVariables("QUERY_STRING"
istekbolum Split(istekurl,"/")

istekbolum2=istekbolum(3)
parcala=split(istekbolum2,"-")
page=parcala(1)


filePath Server.MapPath("database.mdb")
Set dbcon Server.CreateObject("ADODB.Connection")
dbcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" filePath

Set rs 
Server.CreateObject("Adodb.Recordset")
sql="SELECT * FROM tblvideo ORDER BY idno DESC"
rs.Open sql,dbcon,1


If (page ="" or page 0Then page Else page=page
rs
.pageSize10
rs
.absolutePage=page

Do While Not rs.Eof and i<rs.pagesize
i
=i+1

Response
.Write ("<br><a href=""http://www.siteadi.com/video-"&rs("idno")&"-"&cevir(rs("videoadi"))&".htm"">"&rs("videoadi")&"</a>")

rs.Movenext
Loop

If page 1 Then
Response
.Write " "
Else
page -1
Response
.Write ("<a  href=http://www.ornek.com/videoarsiv-" qstring &".htm><<  Önceki    </a> ")
End If
If 
page rs.pagecount Then
rs.pagecount
Else
page 5
End 
If
If 
page 5 Then
1
Else
page 5
End 
If
For 
c To b
If page Then
Response
.Write "[<b>" "</b>]  "
Else
Response.Write "<a href=http://www.ornek.com/videoarsiv-" qstring &".htm>" "</a>  "
End If
Next
If page rs.pagecount Then
Response
.Write " "
Else
page 1
Response
.Write "<a href=http://www.ornek.com/videoarsiv-" qstring &".htm>    Sonraki >></a> "
End If
%> 

Şeklinde değişiklik yaparız.


Artık .asp de SEO uyumunu kullanmayı öğreniyoruz ve mutlu oluyoruz,
kafanıza takılan bir nokta varsa fatih@tuncsoft.com msn adresinden ulaşabilir yada PM atabilirsiniz.

Konu Tuncsoft tarafından (12-09-2007 Saat 00:51:09 ) de değiştirilmiştir.. Sebep: Biraz daha ekleme yapmak
Alıntı ile Cevapla
Text Reklamlar