»Forumlar »D?k?manlar »Kullanıcı dostu URL oluşturma (2. teknik)
  https://seditio.com.tr/eski1/forums.php?m=posts&q=962
          Geri Dön      -      Sayfayı Yazdırmak için tıklayın
Author: Kaan, Posted: 2010-10-01 04:45 GMT.
Kullan?c? dostu URL olu?turma (2. teknik)

Ama?

Amac?m?z adres sat?r?n? biraz daha kullan??l? hale getirmek, soru i?aretlerini falan kullanmamak. Yani site.com/yazilar.php?yazi=12 adresini site.com/yazilar/yazi/12 ?ekline ?evirmek.
Teknik

Tekni?imiz ?u ?ekilde olacak:
– site.com/yaz?lar adresi site.com/yaz?lar.php dosyas? demek olacak
– bunu sa?lamak i?in .htaccess dosyas? kullanaca??z.
– site.com/yaz?lar/4/12 adresi ise site.com/yaz?lar.php?paremetre1=4&paremetre2=12 adresine tekab?l edecek.
– Bu parametreleri her sereferinde ay?klayaca??z.
.htaccess dosyas?

.htaccess dosyam?z?n i?erisinde ?u basit kod yer al?yor:
Kod:
RewriteEngine on
      RewriteRule .* - [env=REWRITE_ON:1]
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ index.php [L]

Bu kodun amac? adres sat?r?nda her ne yaz?yor olursa olsun, index.php dosyas?n? ?al??t?rmak. B?ylece sitemize gelen her istek index.php dosyas?ndan ge?iyor olacak.

index.php dosyas? ve verileri i?lemek

index.php dosyas? verileri i?leyece?imiz dosya ve i?eri?i ise:
:
hp]$url = $_SERVER['REQUEST_URI'];

$url = explode('/', $url);

$dosya = $url[2];

$parametre1 = $url[3];

$parametre2 = $url[4];

 

include($dosya.'.php');

index.php dosyas?n?n yapt??? i? url’den dosya ad?n? al?yor ve o dosyay? ?a??r?yor. Ayr?ca parametreleri de tan?ml?yor, b?ylece ?a?r?lan dosya ilgili parametrelere de eri?ebilimi? olacak.

Sonu?

Burada kulland???m?z mant?k ile uzant?s?z dosya isimlerine gerek kalm?yor ve gelen her istek index.php dosyas?na y?nlendirildi?i i?in, bu dosya yar?d?m?yla istenilen dosyay? ?a??r?p ?al??t?rabiliyoruz.

Burada dikkat etmemiz gereken bir ka? nokta da var tabii ki. Bunlardan birincisi dosya ismi tan?ml? de?ilse ne olacak? include() ile ?a??r?rken $dosya de?i?keninin i?eri?ini kontrol etmeli ve atanan her hangi bir de?er yoksa o halde esas ‘index.php’ dosyas?n? ?a??rmal?y?z.

Bir di?er nokta da, ?a?r?lan dosyalar?n izin verilen dosyalar olmas?. Yani url’den ay?klad???m?z dosya ismini direkt olarak include() fonksiyonunun i?erisine sokmamal?y?z, ondan ?nce gelen veriyi kontrol etmeli ve g?venlik i?in belirledi?imiz kriterlere uyup uymad???n? g?zden ge?irmeliyiz.

Powered by SeditioPrint version