Temmuz 7
(PHP) htaccess ile kalıcı link oluşturma Mod_Rewrite
Merhabalar, değişik bir makale ile yine buradayız, mail oluyla bana ulaşan Akın`beyin isteği doğrultusunda .htaccess ile kalıcı link oluşturma hakkında biraz bilgileneceğiz yani
http://site/index.php?sayfa=blog&konu=ben-kimim,
şeklindeki adresleirin nasıl
http://site/blog/ben-kimim.htm
şeklinde veritabanına dayalı kullanıcı dostu kalıcı linkler (Friendly URL) yapılacağınız öğreneceğiz.
Bu işlemleri yapabilmek için sunucumuzda mod_rewrite özelliğinin aktif edilmesi gerekmektedir, bu ayarlar sunucu yönetimi tarafından APACHE conf dosyalarında düzenleme yapılarak kullanılabilir.
Eğer mod_rewrite durumunu bilemiyorsanız,
<?php
phpinfo();
?>
satırlarını içeren bir dosya yaratım info.php adı ile sunucunuza yükleyin http://site/info.php adresinden sunucunuzda bulunan tüm configürasyon bilgilerine ulaşabilirsiniz, ama bize burada sadece mod_rewrite ile ilgili olan bölüm gereklidir (bu yazı için), Eğer kapalı görünüyorsa sunucu yönetiminiz ile görüşüp destek alabilirsiniz.
Örnek vererek başlayalım;
http://site/index.php?sayfa=$strsayfa&konu=$strkonu olan url adresimizdeki $değişkenleri kullanarak bir .htaccess dosyası kullanacaksak,
.htaccess dosyamız
Options
+FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule type(.*)-(.*).htm$ /index.php?sayfa=$1&konu=$2
$değişkenler type() içerisinde bulunan yıldızların sırasını belirtiyor, bu 1-2 nerden geldi demeyin sonra
http://site/index.php?sayfa=blog&konu=ben-kimim
olan urlmiz
http://site/blog/ben-kimim.htm
olarak da işlem görecektir.
Bunu birde veritabanlı işlemlerde görmek gerekirse.
<?php
While($row = @ mysql_fetch_Array($rs)){
$strsayfa= $row["sayfa"];
$strsayfa= URLencode(htmlentities($strsayfa,ENT_QUOTES));
$strkonu = $row["konu"];
$strkonu= URLencode(htmlentities($strkonu,ENT_QUOTES));
echo "<a href="http://www.site.com/index.php?
sayfa=$strsayfa&konu=$strkonu">";
echo "$row[aciklama]</a><br>
";
}
?>
şeklinde kullanılan bir veriyi
<?php
While($row = @ mysql_fetch_Array($rs)){
$strsayfa= $row["sayfa"];
$strsayfa= URLencode(htmlentities($strsayfa,ENT_QUOTES));
$strkonu = $row["konu"];
$strkonu= URLencode(htmlentities($strkonu,ENT_QUOTES));
echo "<a href="http://www.site.com/type$
strsayfa-$strkonu.htm">";
echo "$row[aciklama]</a><br>
";
}
?>
şeklinde yapınca çalışması gerekiyor.
Bende bu dökümanı buradan alıp kendi dilimle çevirmeye çalıştım, bildiğim söylenemez.
Neyse sağlıcakla kalın