|
|
|
engin
|
sanırım yapmak istediğin şöyle birşey sitem klasörü altındaki .htaccess içeriği RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-s RewriteRule ^(.+)/([0-9]+)/?$ ./haber.php?no=$2 [L]
haber.php <?php var_dump($_GET); ?>
örnek -> http://e-php.net/eburhan/sitem/haber/12
|
|
|
|
|
Logged
|
Engin Dumlu engin ~ turk-php.com achilles ~ member.turk-php.com
|
|
|
|
eburhan
|
Teşekkür ederim ama bir sorum daha olacak. Ben bütün projede linkleri http://localhost/sitem/haber.php?no=17 olarak belirlemiştim. <a href="http://localhost/sitem/haber.php?no=17">Haber 17</a> .... gibi Şimdi bunların tümünü dönüştürmem mi gerekiyor? <a href="http://localhost/sitem/haber/17">Haber 17</a> .... gibi mi yapmalıyım?
|
|
|
|
|
Logged
|
|
|
|
|
engin
|
merhaba, eğer linkleri dinamik olarak php ile yapıyorsanız permalinke geçmek zor olmayacaktır ayrıca her ikisini birdende kullanabilirsiniz yazdığımız rewrite kuralı gelen istekteki "request file" dosyası bulunamadığı zaman çalışır
|
|
|
|
|
Logged
|
Engin Dumlu engin ~ turk-php.com achilles ~ member.turk-php.com
|
|
|
|
aziz
|
Bunlar dışında dikkat etmeniz gereken 2 önemli nokta var. 1.si , $_GET değişkenleri sayısı 2 yada 3 olduğunda sistem çalışmayacaktır. RewriteRull ları ona göre düzenlemelisiniz. Unutmayın, rewriterull lar içerisinde, en yüksek değişken sayısı en yukarıda olmalıdır ki, değişken eksik olduğunda alt satıra bakabilsin. 2.si haber.php?no=17 diyorsunuz. Bu eğer haber.php?kategori=siyaset olursa yine sistem çalışmayacaktır. evet, sistem kategori değişkenini no gibi görecek ve problem olmayacaktır. haber.php?kategori=3 çalışır, ancak kategorinin yazıya dönüştüğü durumlarda sistem yine çalışmayacaktır. bunun için, RewriteRule ^(.*)/(.*)/$ haber.php?degisken=$1 [L]
gibi bir kural kullanmak daha uygun olacaktır. Ayrıca, geçmiş başlıklarda söylendiği üzere [0-9] , [a-z0-9] gibi tanımlamalar site hızını yavaşlatacaktır... İyi Çalışmalar
|
|
|
|
|
Logged
|
|
|
|
|
eburhan
|
[0-9] , [a-z0-9] gibi tanımlamalar site hızını yavaşlatacaktır...
Bu tavsiyenden sonra [0-9] tanımlamasını kaldırdım. Dediğin gibi yavaşlatıyorsa buna gerek yok. Çünkü php dosyasının en başında is_numeric() ile zaten gelen değerin sayısal olup olmadığını kontrol ettiriyorum. Herkese teşekkürler 
|
|
|
|
|
Logged
|
|
|
|
|
GaziMarşı
|
Kusuruma bakmayın ama şeklindeki bir linki neden şekline getirmek istiyorsunuz... guvenlık nedenıyle mı ? degılse anlamakta zorluk cekıyorum...
|
|
|
|
« Last Edit: December 03, 2006, 03:32:05 pm by GaziMarşı »
|
Logged
|
|
|
|
|
aziz
|
1.) SEO Optimizasyonu 2.) Güvenlik 3.) Havalı URI ler :P
için
|
|
|
|
|
Logged
|
|
|
|
|
eburhan
|
Valla benim en önemli sebebim arama motoru optimizasyonu 
|
|
|
|
|
Logged
|
|
|
|
|
GaziMarşı
|
o zaman bundan sonra bende boyle yapayım... 
|
|
|
|
|
Logged
|
|
|
|
|
aziz
|
Arkadaşlar bir yanlışlık olmasın 80/20 diye bir hikaye var... bu söylediğim onun dışında arama motorlarının kolay indexleme yapabilmesini sağlıyor... yani yaklaşık 8-9 maddeden biri sadece
|
|
|
|
|
Logged
|
|
|
|
|
engin
|
illa backreference kullanarak url'yi parçalamak zorunda değilsiniz $_GET array'inde nekadar veri olursa olsun, bunu php içerisinde $_SERVER['REQUEST_URI'] şeklinde alıp ayıklamayı yapabilirsiniz, arama motorları için /haber.php?no=20 ile /haber/20 arasında hiçbir fark yoktur rewrite ile yapılan basit regular expression işlemlerini bırakın RewriteMap kullansanız bile performans veya hız kaybı olcağını sanmıyorum ( aşırı popüler bir site değilse )
|
|
|
|
|
Logged
|
Engin Dumlu engin ~ turk-php.com achilles ~ member.turk-php.com
|
|
|
|
eburhan
|
arama motorları için /haber.php?no=20 ile /haber/20 arasında hiçbir fark yoktur Engin tam da sayfalardaki bütün linkleri değiştiriyordum. Şimdi söylencek söz mü bu  Bu arada ben linki http://localhost/sitem/haber.html/17/Fenerbahce-zirvede-yalnizlasiyor/şekline çevirdim. Sondaki haber başlığını $_GET[] ile almıyorum, işime yaramıyor ama seo için katkıda bulunabileceğini düşündüm. Siz ne dersiniz?
|
|
|
|
|
Logged
|
|
|
|
|
engin
|
|
|
|
|
|
Logged
|
Engin Dumlu engin ~ turk-php.com achilles ~ member.turk-php.com
|
|
|
|
eburhan
|
Önceki mesajını dikkat aldım ama REQUEST_URI kullanmayı gerektirecek birşey yok şimdilik. Dediğim gibi sadece haber numarası (12) bana yetiyor onu da GET ile alıyorum. Ben şunun için düşünmüştüm. Sitenin ismini ve haber başlığını, sitenin <title></title> etiketlerine zaten yazdırıyorum. Eğer Spider hem <title> içerisinde hem de URL içerisinde aynı kelimeleri görürse bundan bir anlam çıkarabilir diye düşündüm 
|
|
|
|
|
Logged
|
|
|
|
|