Kullanıcı dostu url hazırlamak
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.

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 OnForceType 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!
- 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ış.
görüşünü belirt
Arama
E-Posta Aboneliği
RSS Aboneliği
En Çok Yorumlanan Yazılar
- Ajax ile dinamik listeleme (22)
- Blogger’da “devamını oku” bağlantısı (21)
- MySQL’de Transaction ve PHP ile kullanımı (16)
- PHP ile sınırsız alt kategori mantığı (16)
- MySQL’de “join” kullanımı (13)
- Kullanıcı dostu url hazırlamak (12)
- PHP’nin (muhtemelen) az bilinen 10 özelliği (12)
- Kullandığınız programlama dili ne kadar popüler? (12)
- .htaccess konuları [Giriş] (11)
- Blogger’da arama kutusu ekleme (10)
Etiketler
Son Yorumlar
- Fatih: Açıkçası sitenizi yeni keşfettim ve gerçekten beğendim. Kaynak ve tutorial ihtiyacı olduğunda yabancı blog...
- beyo: emeğine sağlık, temiz bir anlatım olmuş
- gokhan: güzel bir anlatım yapmışsın.. devamını bekleriz.. kolay gelsin
- web yazılım şirketi: google blog araması ile .net üzerinden hizmet veren web yazılım şirketi ararken tesadüfen bu web...
- Codderol: çok teşekkürler bu çalışma bana çok yardımcı oldu….
11 / Mayıs / 2008
Ellerine sağlık yararlı ve güzel anlatım.
Akıcı bir dille, kolay anlaşılır anlatmışsın, tebrik ederim..
Teşekkürler.
adresi uzantısız olarak nasıl kaydedebilirm??
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.
Uzun zamandır kafama takılmıştı bu url meselsi,açıkladığınız için teşekkürler.
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
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.
Çok yakında burada anlattığımdan daha kolay bir yöntemi yazacağım.
İlginiz için teşekkürler.
ne kadar yakın :p
[...] 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 [...]
tskler..