Oğuz Esen Resmi Fan Clup İndir-Dinle 2011
Linklerimizi Sef Yapıyoruz - Htaccess uygulaması 112

Join the forum, it's quick and easy

Oğuz Esen Resmi Fan Clup İndir-Dinle 2011
Linklerimizi Sef Yapıyoruz - Htaccess uygulaması 112
Oğuz Esen Resmi Fan Clup İndir-Dinle 2011
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Linklerimizi Sef Yapıyoruz - Htaccess uygulaması

Aşağa gitmek

Sabit Linklerimizi Sef Yapıyoruz - Htaccess uygulaması

Mesaj tarafından Mc Zindan Ankara Style Cuma Nis. 30, 2010 2:07 pm

Merhabalar Arkadaşlar,
Php'ye yeni giren arkadaşlarımızın ortak hayali olan
konuizle.php?id=1500 benzeri linklerimizi konu-adi.html şekline nasıl
çevireceğimizi göreceğiz.
Sef link mantığı asp'de de aynıdır ama ben asp'de yetkin olmadığım için
yanlış yönlendirme yapmak istemiyorum, bu yüzden php bölümünde
paylaşıyorum konuyu.
Linklerim Nasıl Olacak ?
fikraoku.php?id=13 > 13-ya-tutarsa-fikrasi.html
veya
fikra/13/ya-tutarsa.html
veya biraz daha emek harcayarak direktman
ya-tutarsa.html
3. sistemin biraz daha emek istemesinin sebebi, fıkrayı çekerken
birincil değer olarak url'de fıkra numarası yerine başlığının türkçe
karakter içermeyen halini kullanmamız gerekiyor. Bu sef link sistemine
yeni başlayacak arkadaşlar için kafa karıştırıcı olacağından bu yapıyı
nasıl yapabileceğimize şimdilik değinmiyorum.
Değin diyen olursa memnuniyetle değinirim )
Linklerim Böyle Olursa Ne Kazanacağım?
Google amcamız ezelden beri .html uzantılı siteleri daha çok sever.
Hele bir de aratılan terimler url'de bizzat bulunuyorsa, tadından yemez kullanıcısına yedirir.
Linkleriniz fikraizle.php=13 şeklinde iken google sizi 5 birim seviyorsa
13-ya-tutarsa-fikrasi.html şeklinde iken 15 birim sever.
Birisi google'a gidip "ya tutarsa" diye aratınca 2. durumda 1. duruma göre çok daha yüksek çıkarsınız.

Bu konu size google'da şartsız şampiyonluk getirecek demiyorum, SEO
başlı başına bir sektördür. SEF link seo'nun önemli bir ögesidir fakat
yarısını bile ifade etmez. Burada sitemize SEO yapmıyoruz, sadece
SEO'suna katkıda bulunuyoruz.
Bir diğer faydası;
Diğerleri kadar önemli olmasa da, kullanıcılarınız sitenizdeki
linklerin içeriğini url'nize bakarak anlayabilir ve bu da kullanım
kolaylığı sağlar.
Başlıyoruz...
Sef Linklerin Babası .htaccess
Web sitemizin ana dizininde bulunan .htaccess isimli dosyamızı Sef link yaparken çok kullanacağız.
htaccess'in farklı görevleri vardır ama biz ondan şunu yapmasını isteyeceğiz :
"Bir kullanıcı tarayıcıya benimsitem.com/X yazdığı zaman, benimsitem/Y yazmış gibi davran."
Daha gerçekçi anlatmak gerekirse :
"Bir kullanıcı tarayıcıya benimsitem.com/13-ya-tutarsa-fikrasi.html
yazdığı zaman benimsitem/fikraizle.php?id=13 yazmış gibi davran."
htaccess, tarayıcı ile sitemiz arasındaki tercüman görevini üstleniyor bu kısımda.
Tarayıcı elinde bir url ile geliyor, htaccess dosyası ona elindeki url'nin gitmesi gereken gerçek adresi işaret ediyor.
Böylece tarayıcı, sizin hostunuzda 13-ya-tutarsa-fikrasi.html gibi bir
html dosyası olmasa bile, .htaccess'in yol göstericiliği doğrultusunda
fikraizle.php?id=13'e gidiyor.
Peki htaccess'le nasıl konuşurum ?
Tatlı dil yılanı deliğinden çıkarır deyip, başlıyoruz.
İster web sitenizin anadizinindeki .htaccess dosyasını bilgisayarınıza
indirip bir editörle açın, ister ftp programından sağ tıklayıp "edit"
deyin, .htaccess dosyası yok ise bilgisayarınıza htaccess.txt oluşturup
onu .htaccess diye kaydedin, bir şekilde o dosyanın düzenleme ekranını
açın
Dosyamızı açtık ve bize host sağlayan firmanın kendi ayarlarını yapmış
olabileceğini göz önüne alıp, onlarla papaz olmamak için bir karakteri
bile silmedik.
En alt satırın altına şu iki satırı yapıştırdık :

Code:


Kod Çizelgesi Kod Dili: html
Options +FollowSymLinks
RewriteEngine on



Bu Kod Ne Diyor?
Bu kod .htaccess'e şunu söylüyor :
Artık bazı şeyleri yeniden yazacaksın, değiştireceksin.
Kodlama ingilizce konuşur arkadaşlar, ingilizce bilenlerimiz kodlardan amacı çıkarabilirler.
Rewrite Engine On > Yeniden Yazma Motoru Açık.
htaccess tercümanlığa terfi etti
Htaccess'e hangi linki hangi diğer linke tercüme edeceğini nasıl öğretirim ?
Bilgisayar en iyi dosttur çünkü siz doğru anlattıkça kesinlikle yanlış anlamaz
Biraz emek ve azimle anlamayacağı şey de yoktur.
Önce htaccess'in bildiği ama bizim bilmediğimiz özel karakteri bir tanıyalım.
Bizim alfabemizde "Buraya gelecek terim, görevi kendine göre değiştirir" görevini yüklenen bir harfimiz yoktur.
Ama htaccess'de vardır, kültürlü maşallah. O karakter grubu da şudur :
(.*)
Htaccess dosyasında bu karakter grubunu koyduğunuz yere gelecek olan
içeriği, eğer isterseniz bir değişken olarak tanımlarsınız,
istemezseniz havada kalır, yerine ne gelirse gelsin birşey değişmez
Biz iki durumu da kullanacağız.
Özel karakterimizi tanıdıktan sonra htaccess'e çevireceği linkleri öğretmeye başlıyoruz :
Az önce bahsettiğim iki satırlık kodu .htaccess dosyasının en altına
ekledikten sonra, şimdi çalışacaklarımızı o iki satırın altına
yazacağız.
Htaccess'in çeviri mantığını cep telefonuyla yapılan başvurulara benzetebilirsiniz.
Örneğin;
TERCÜME yaz bir boşluk bırak ÇEVİRİLECEK METNİ yaz bir boşluk bırak
ÇEVİRİLECEĞİ METİNİ yaz htaccess'e gönder Sef link cebine gelsin.
Başlıyoruz ;
TERCÜME yaz Bir boşluk bırak dedik ama, kodlama ingilizce konuşur. Bunu anlamaz.
Htaccess dosyamızın en alt satırına inip bir nevi TERCÜME sözü görevini yapacak şu kelimeyi yazıyoruz :
RewriteRule
Rewrite rule : yeniden yazma kuralı. Yani şunu buna çevir cümlesi yazacağımın sinyalini veriyorum.
Bir boşluk bırakıyorum ( hatırlayın cep telefonuyla başvuru yapar gibi)
Çevirilecek metni yazıyorum.
Hop dedik, ben her fıkramı buraya tek tek ekleyemem ki? Uzar gider bu liste?
O zaman değişebilecek terimlerim yerine değişken atamaya karar veriyorum.
Değişkeni ne ile atıyorum ? Sevgili karakter grubum (.*) ile.
Analize başlıyoruz :
link :
benimsitem.com/13-ya-tutarsa-fikrasi.html
Bu linkte nereler her fıkraya göre değişir herkes kendi düşünsün bakalım? Süre bir dakika.
Geldiyseniz devam ediyoruz.
Fıkraya göre linkimde değişecek yerler :
benimsitem.com/13-ya-tutarsa-fikrasi.html
Değişecek olan bölgelerime sevgili karakter grubumu koyarak değişken kılınca linkim şu hali alıyor :
benimsitem.com/(.*)-(.*)-fikrasi.html
Tamamdır. Şimdi şuna dikkat ediyorum :
İki tane değişkenim var, hangisi işime yarayacak ?
Hepimizin şıp diye aklına geldiği üzere, birinci değişkenim olan fıkra
numarası işime yarayacak. Çünkü fıkraları id numarasına göre çekiyorum,
başlığına göre değil.
Değişmesini istediğim terimi htaccess dosyama Rewrite Rule'dan sonra bir boşluk bırakıp yazıyorum.
.Htaccess dosyamın son satırı şöyle oldu:

Code:

Kod Çizelgesi Kod Dili: html
RewriteRule (.*)-(.*)-fikrasi.html


Sitemin ana url'sini (benimsitem.com) yazmadığımı unutmayınız.
Ana url'yi dahil etmeden, sitenizin adından sonraki kısmı yazacağız her zaman.
İlk iki adım tamamdır.
TERCÜME yazdım, Bir boşluk Bırakıp Çevirilecek Metini Yazdım.
Rewrite Rule Yazdım, Bir boşluk bırakıp (.*)-(.*)-fikrasi.html yazdım.
Son adım olan, çeviri sonucunu yazmaya geldi sıra. Verilen metini neye çevireceğini öğreteceğiz sevgili .htaccess'e.
Bir boşluk bırakıp konumuzu okumaya devam ediyoruz.
Kendimize soralım :
13-ya-tutarsa-fikrasi.html
Ben bu linki nereye götürürsem, sitemdeki fıkrayı ziyaretçime okutabilirim?
Şu nasıl olur ?
fikraizle.php?id=13
Kullanıcım bu linke gelince benim fıkramı okuyabiliyordu zaten.
Htaccess kullanıcıyı buraya gönderirse ben ona fıkramı yine
okutabilirim.
Peki şu linkler nereye gitmeli ?
26-parayi-veren-dudugu-calar-fikrasi.html > fikraizle.php?id=26
76-daa-da-gelmem-fikrasi.html > fikraizle.php?id=76
Bu liste uzar gider. 5bin fıkram varsa 5bin çeviri yapmam gerekir.
Hepsini tek tek yazacak mıyım htaccess'e, tabi ki hayır. Yine sevgili
özel karakterimiz olan (.*)'ın bize sağladığı değişken lüksünden
faydalanacağız.
Çevirilecek metinim şuydu :
(.*)-(.*)-fikrasi.html
Bunu neye çevirirsem, her zaman ilgili fıkraya ziyaretçi yollayabilirim?
Şu nasıl?
fikraizle.php?id=ilkdegisken
Altını çizdiğim ilk değişken alanı, ilk yazılan (.*) karakteri yerine gelen alanı kastedmektedir.
O zaman şunu öğrenmemiz gerekiyor :
Htaccess'te bir satıra (.*) ile atadığım X tane değişkenden n. olanı çekmek için $n yazmam yeterlidir.
RewriteRule (.*)-(.*)-fikrasi.html satırındaki 2 tane değişkenden birincisini seçmek için şunu yazmam yeterlidir : $1
Öyle iste ziyaretçinin gönderileceği linkte, altını çizdiğim ilk değişken alanına şunu yazsak nasıl olur?
fikraizle.php?id=$1
Bence gayet güzel olur.
Sizin aklınıza takılmadan ben söyleyeyim :
evet linkte ya tutarsa yazması veya parayı veren düdüğü çalar
yazmasının hiç bir önemi yok. O sadece google'a yaranmak için yapılmış
bir işlem. önemli olan linkteki numara.
Denemek ister misiniz?
509.html
target="_blank">http://www.programlamadili.net/Action-Script/actionscript-30-ile-fare-isaretcisini-degistirmek-509.html


Aşağıdaki linke tıklayıp yeni bir pencerede açın.
Konuyu gördükten sonra linkteki 509 sayısı yerine 415 yazın.
Enter'a basınca karşınıza yeni konu geldiğini göreceksiniz.
Yani url'deki metinin hiç bir önemi yok ( önemi olacağı zamana daha çok var )
Çevirilecek metin olarak şunu buldum :
fikraizle.php?id=$1
O zaman bunu da satırımın bir karakter sonrasına ekleyeyim ve satırım şu hale gelsin :

Code:
RewriteRule (.*)-(.*)-fikrasi.html fikraizle.php?id=$1
Evet cep telefonu mesajım hazır. Htaccess dosyamı kaydederek ftp'ye
yüklersem , artık birisi tarayıcıma 13-ya-tutarsa-fikrasi.html yazdığı
zaman, farkında olmadan fikraizle.php?id=13'e gidecek.
Diğer bütün link ayarlamalarını da bu şekilde yapabilirim.
Örnek bir .htaccess dosyası içeriği görmek isterseniz :

Code:

Kod Çizelgesi Kod Dili: html
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*)-(.*)-sarkicisinin-akorlari.html sarkici.php?id=$1
RewriteRule (.*)-(.*)-haber-kategorisi.html haberkat.php?id=$1
RewriteRule (.*)-(.*)-haberi.html haberizle.php?id=$1
RewriteRule (.*)-(.*)-koyu.html koyizle.php?id=$1
RewriteRule (.*)-(.*)-videosu.html videoizle.php?id=$1
RewriteRule (.*)-(.*)-firmasi.html firmaizle.php?id=$1
RewriteRule (.*)-(.*)-fotosu.html fotoizle.php?id=$1
RewriteRule (.*)-(.*)-uyesi.html uyeizle.php?id=$1
RewriteRule (.*)-(.*)-ilcesi.html ilceizle.php?id=$1
RewriteRule (.*)-(.*)-haber-kategorisi-sayfa-(.*).html haberkat.php?id=$1&sayfa=$3
RewriteRule (.*)-(.*)-fotograf-kategorisi.html fotokat.php?id=$1
RewriteRule (.*)-(.*)-fotograf-kategorisi-sayfa-(.*).html fotokat.php?id=$1&sayfa=$3
RewriteRule (.*)-(.*)-firma-kategorisi.html firmakat.php?id=$1
RewriteRule (.*)-(.*)-firma-kategorisi-sayfa-(.*).html firmakat.php?id=$1&sayfa=$3
RewriteRule (.*)-(.*)-video-kategorisi.html videokat.php?id=$1
RewriteRule (.*)-(.*)-video-kategorisi-sayfa-(.*).html videokat.php?id=$1&sayfa=$3
RewriteRule (.*)-(.*)-akorlari-gitar-akorlari.html akorizle.php?id=$1



Ne kadar linki düzenlemek istiyorsak, o kadar cep mesajı atacakmışız
gibi düşünün. Cep mesajlarını htaccess'e yazıyoruz tabi Kontör yemez
Gerekli htaccess düzenlemesini yaptım, sitemde görünen linkleri nasıl değiştireceğim?
Kodlayacağınız sistemi bu link yapısına göre kodlayacaksınız tabii ki
Ben üzerinde çalıştığım dil olan php ile size bu işi nasıl yaptığımı kısaca aktarayım :
Aynı mantıkla diğer kodlama dillerinde de yapabilirsiniz.
Önce bilmem gereken :
Tarayıcıya ğ,ö,ş,ç gibi türkçe karakterler çıkmayacağı için, onların ingilizce karakterle yazılmış hali lazım bana.
Bu angaryayı da sevgili php'ye yıkıp hakkını helal etmesini istiyoruz.
Gereken fonksiyon :
Türkçe karakterleri ingilizceye çevirmeye yarayan, boşluk yerine tire koyan tr_duzelt fonksiyonu, buyurun :

PHP Kodu:

Kod Çizelgesi Kod Dili: php
function tr_duzelt($tr1) {
$turkce=array("ş","Ş","ı","(",")","'","ü","Ü","ö", "Ö","ç","Ç","
","/","*","?","ş","Ş","ı","ğ","Ğ","İ","ö","Ö","Ç","ç", "ü","Ü");
$duzgun=array("s","S","i","","","","u","U","o","O"
,"c","C","-","-","-","","s","S","i","g","G","I","o","O","C","c","u","
U");
$tr1=str_replace($turkce,$duzgun,$tr1);
$tr1 = preg_replace("@[^A-Za-z0-9\-_]+@i","",$tr1);
return $tr1;
}



Bu fonksiyonu sayfamın müsait biyerine sıkıştırdıktan sonra devam ediyorum.
Fıkraları veritabanımdan çekeceğim :
(okuyan herkesin bir miktar php bilgisi sahibi olduğunu varsayarak
kullandığım satırlardan konumuzla ilgili olmayanları açıklamayacağım.
Php üzerinde çalışıyor ve cümleciklerin anlamını bulmakta
zorlanıyorsanız tekrar yapmanızı, asp'de çalışıp anlamakta
zorlanıyorsanız bir bilene danışmanızı rica ediyorum )

PHP Kodu:

Kod Çizelgesi Kod Dili: php
$fikraal=mysql_query("SELECT * FROM fikra");
while($fikra=mysql_fetch_array($fikraal)){
$fikraid=$fikra['id'];
$fikraad=$fikra['baslik'];
$fikraa+++++++zce=tr_duzelt($fikraad); // Fıkramın başlığını ingilizce karakterlere çevirip bir değişkene atadım
print"<a href=$fikraid-$fikraa+++++++zce-fikrasi.html>$fikraad</a>";
}



tr_duzelt fonksiyonu ile nasıl düzenli link kurduğumu da yukarıdaki kodlardan öğrenmiş olduk.
Böylece sistem ekranınıza şu kodları bastırdı :

HTML Code:

Kod Çizelgesi Kod Dili: html
<a href=26-parayi-veren-dudugu-calar-fikrasi.html>Parayı veren düdüğü çalar</a>
<a href=13-ya-tutarsa-fikrasi.html>Ya Tutarsa?</a>
<a href=76-daa-da-gelmem-fikrasi.html>Daa Da Gelmem</a>
<a href=88-gsouc-fikrasi.html>ğşöüç</a>



Scriptinizi bu mantıkla kodlar ve htaccess dosyanıza tercümanlık
öğretmeyi başarırsanız, buyurun sizin de artık full sef link bir
sisteminiz var.
Herkese iyi çalışmalar..
Mc Zindan Ankara Style
Mc Zindan Ankara Style
Admin
Admin

Mesaj Sayısı : 3104
Aktiflik Puanı : 13215
Kayıt tarihi : 26/11/09
Yaş : 31
Nerden : ankara

http://www.amasyateknoloji.tk

Sayfa başına dön Aşağa gitmek

Sayfa başına dön

- Similar topics

 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz