Kullanıcı dostu url hazırlamak

Date11 / Mayıs / 2008 Author İsa Engiz    Category php     Tags , , Yorumlar12 Yorum Yapilmis.

Pek çok siteye baktığınızda, şöyle uzayıp giden adresler görebilirsiniz: site.com/yazilar/kategori/14/yazi/21/ gibi. İlk aklınıza gelen “bu kadar dosyayı – dizini nasıl idare ediyorlar?” sorusu olabilir, ancak durum öyle değil. Yaptıkları sadece farklı bir url mantığı kullanmak.

url-resim

Yani yukarıdaki adresin asıl ifade ettiği şey, site.com/kategori.php?kategori=14&yazi=21 . İlkinin daha kullanıcı dostu olduğunu söyleyebiliriz rahatlıkla ve bu yazıda bu tarz adresleri nasıl oluşturacağımız üzerine tartışacağız.

Amaç

Amacımız, site.com/yazilar.php?yazi=12 adresini site.com/yazilar/yazi/12 şekline çevirmek ve bu şekilde işlemlerimizi gerçekleştirmek olsun. Bunu yapabilmek için ilk önce yazılar sayfasından başlıyoruz.

yazilar sayfası

İlk önce “yazilar” adında bir sayfa oluşturuyoruz. (uzantısı olmayacak, yazılar.php değil, sadece yazilar )

“yazilar” sayfamızın kodları aşağıdaki gibi olacak:

<?php
 
$url = explode("/",$_SERVER["REQUEST_URI"]);
$id = $url[count($url)-1];
echo $id;
 
?>

Bütün url’yi alıyoruz ve $url değişkenine yüklüyoruz. Daha sonra $url dizisindeki son elemanı (yazının id’si) $id değişkenine yüklüyoruz. Bu şekilde eski $_GET[] metodu yerine adres satırından değişkenleri artık böyle ayıklıyoruz.

.htaccess dosyası

Şu anda site.com/yazilar.php/yazi/12 şeklinde yaptığımızda da sistemimiz çalışır ancak adresin ortasında duran yazilar.php’yi sevmeyenler olabilir!

Bunu değiştirmek için içeriği aşağıdaki kodlar olan bir .htaccess dosyası hazılıyoruz:

RewriteEngine On

ForceType application/x-httpd-php

Burada yaptığımız şey ise aphache’ye, adres satırında geçen “yazilar” ismine .php uzantısını ekleyip yorumlamasını söylemek. Yani artık biz adres satırına site.com/yazilar/yazi/12 yazdığımızda sunucu yazilar diye bir dizin aramak yerine yazilar.php diye bir dosya arayıp onu çalıştıracak.

Sonuç

Görüldüğü üzere adres satırını değiştirip verileri ona göre almak hiç de zor değil. Siz de bu şekilde adres satırını değiştirip daha kullanıcı dostu yapabilirsiniz ama bu aşamadan sonra uygulamanızın işleyişini biraz daha değiştirmeniz gerekecek. $_GET[] kullanamayacaksınız dolayısıyla get methodu ile aldığınız değişkenleri bir iki satır daha kod yazarak alabileceksiniz. Ama bence daha güzel gözüken adres satırı için değer!

- Bu blogda yer alan yazıları RSS ile takip edebilirsiniz. RSS aboneliği için tıklayın.

- Ya da bu blogda yer alan bütün yazıları içindekiler sayfasında görüntüleyebilirsiniz. Tıklayın!

Kullanıcı dostu url hazırlamak yazısına 12 Yorum yapılmış.

  • buraktolga 11 Mayıs 2008, 15:11

    Ellerine sağlık yararlı ve güzel anlatım.

  • fusun 22 Mayıs 2008, 21:21

    Akıcı bir dille, kolay anlaşılır anlatmışsın, tebrik ederim..

  • İsa 23 Mayıs 2008, 06:57

    Teşekkürler.

  • eylul 28 Haziran 2008, 12:21

    adresi uzantısız olarak nasıl kaydedebilirm??

  • İsa Engiz 28 Haziran 2008, 13:57

    yazilar.php yerine yazilar şeklinde bir dosya hazırlamak için farklı yollar mevcut.

    notepad++ ile belgenizi hazıladıktan sonra “dosya->save a copy as” seçeneğinden gelen ekranda dosya ismini uzantısız olarak yazdığınızda kaydetmiş olacaksınız. (yalnız bu ekranda alt tarafta kayıt türü olarak all types(*.*) seçili olmalı.)

    Bir diğer yol da dreamweaver ile bunu yapmak. dreamweaver’ın bütünleşik dosya tarayıcısında belgeyi oluşturmak istediğiniz yere sağ tıklayıp “yeni dosya” dedikten sonra uzantısız olarak isim belirttiğinizde direkt olarak kaydedilecektir.

  • Şenol Örencik 12 Temmuz 2008, 16:14

    Uzun zamandır kafama takılmıştı bu url meselsi,açıkladığınız için teşekkürler.

  • sabri ünal 10 Eylül 2008, 02:35

    benim yöntemim daha basit gibi geldi…

    modRewrite ile yapıyorum…

    sayfayı normal php mantıgı ile bir kere hazırlıyorum, sonra gönderilecek url’leri düzenliyorum… ve şöyle bir modRewrite yazıyorum


    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /

    Rewriterule ^(.+)-k([0-9]*)\.html$ urundetay.php?pid=$2

    şu link -> http://www.kidap.com.tr/urundetay.php?pid=85635
    dönüşen link ->
    http://www.kidap.com.tr/belediyelerde-proje-yonetimi-akif-carkci-k85635.html

  • serkan 27 Eylül 2008, 17:46

    bende sabri ünal ‘ın kulandığı yöntemi kulanıyorum banada daha basit geliyor
    htaccess dosyasına şöyle bi kod ekleyerek…
    RewriteRule ^yazilar/yazi/(.*)/$ yazilar.php?yazi=$1 [L,NC]
    gene bu linki(site.com/yazilar/yazi/12) elde etmek mümkün.

  • İsa Engiz 27 Eylül 2008, 20:43

    Çok yakında burada anlattığımdan daha kolay bir yöntemi yazacağım.

    İlginiz için teşekkürler.

  • serkan 28 Eylül 2008, 14:20

    ne kadar yakın :p

  • KOODLA | BLOG » Anasayfa php » Kullanıcı dostu URL oluşturma (2. teknik) 04 Ekim 2008, 13:14

    [...] daha önceki bir yazımızda kullanıcı dostu url oluşturma’dan bahsetmiştik. Ancak orada kullanıdığımız teknikte işlemi gerçekletirecek dosyayı uzantısız olarak [...]

  • mirc 09 Ocak 2009, 11:15

    tskler..

görüşünü belirt

Spam Protection by WP-SpamFree

Arama


E-Posta Aboneliği


RSS Aboneliği

En Çok Yorumlanan Yazılar

Etiketler

404 ajax apache arama butonu as astrofizik açık kaynak banner blogger blogger/blogspot Blogger / Blogspot blogspot case chmod css date dosya yükleme editör etiket etkinlik favicon featured form ftp galeri Genel gimp hata sayfası header htaccess htpasswd ilişkisel veritabanı index innodb javascript join JQuery kategori koodla linux mysql opacity php resim url

Son Yorumlar

  • isa engiz: Yazı için teşekkürler. sabit ip 2.75 tl. bu ücreti verip kendi web sunucumuzu kurabiliriz… En yakın...
  • osman: Yazı için teşekkürler. Pardus projesinin Türkiye için çok önemli olduğunu düşünüyorum. Ancak yazıda da...
  • Mustinet: siblings kullanarak da yazılabilir. Teşekkürler
  • is: CSS kullanmadan sadece HTML kodlarıyla yanyana iki sütun (tablo kullanmadan) oluşturulabilir mi?
  • Doğan Yılmaz: verdiğiniz bilgiler için çok ama çok teşekkür ederim. artık sıkı bir takipçiniz olmaya karar verdim

Sayfalar


Faydalı Bağlantılar