htaccess makale ve alt makale sayfaları gösterimi sorunu

Kodla Büyü

Tarik_Turan

Aktif Üye
Mesajlar
190
Merhaba arkadaşlar...
Daha önce yaptığım bir sitede permalink yapımıyla ilgili bir htaccess sorusu sormuştum. Bu başlıkta :
google-pagerank-seo-alexa-arama-motorlari-f36/htaccess-dosyasi-sorunu-t64416.html

Aynı site de benzeri bir kural yazmam gerekiyor... İlgili başlıkta daha önce şunları sormuştum
-------------

www.tarikturan.com/index.php?kid=1 (ANASAYFA) şeklinden
www.tarikturan.com/1-ana-sayfa.html şekline çevirmeye çalışıyorum.

Veritabanım sınırsız kategorilendirme mantığıyla çalışıyor ve tüm sayfa kayıtlarım kategoriler tablosunda

kategoriler tablom

kat_id ---------- kat_baslik --- ustkat_id --------kat_ht_adi ----------- kat_icerik ........ şeklinde
1 --------------- Ana Sayfa ------ 0 ------------ 1-ana-sayfa.html --------ana dizin içeriği--....
2 --------------- Site Haritası ---- 1 ------------ 2-site-haritasi.html--------alt dizin içeriklerim --....
3---------------hakkımızda-------1--------------hakkimizda---------------hakkımızda kategorim-------
4-------------misyonumuz------3--------------3-misyonumuz.html--------------hakkımızda kategorisinin alt sayfası içeriği ----

.htaccess kodu :

Kod:
RewriteEngine on
RewriteBase /sitem
RewriteRule ^([0-9]+)-(.*).html$ /sitem/index.php?kid=$1
-------------

böyle olunca sorun yok ve htaccess ve de site çalışıyor. İstediğim gibi www.tarikturan.com/1-ana-sayfa.html şeklinde linklerim görünüyor ve çalışıyor.
Tabii şu an soracağım sorun kategoriler tablom içinde geçerli alt kategorileri nasıl göstereceğim ve benzeri bir durum olarak makalelerimi nasıl bir kuralla göstereceğim hakkında !!!

Aslında kategoriler tablomda örneğin "makaleler" adında bir kategori var ve bu kategori "makaleler" tablosundan kayıtları alıyor ve orası da sınırsız makale kategorileri ekleme mantığıyla çalışıyor.

Makaleler tablom :

----mak_id ---mak_baslik ------------------------------ ustmak_id --------mak_ht_adi ------------------------------ mak_icerik ........ şeklinde
----1 -------- Makale Ana Sayfa (0.kat) ------------------ 0 ------------ 1-makale-ana-sayfa.html -----------------ana makale root dizini--....
----2 ---------Bilgisayar Dersleri (1.kat)--------------------- 1 ---------- bilgisayar-dersleri -----------------------1. alt makale kategorim --....
----3 ---------Word Dersleri (1.1. kat)--------------------- 2 ------------ word-dersleri -----------------------------1.1. alt makale kategorim.....
----4 ---------Metinleri Biçimlendirmek (1.1.1 içerik)------ 3 ------------ 4-metinleri-bicimlendirmek.html -------1.1.1 içeriklerim --....


Makaleler sayfasını çağırdığım zaman :

www.tarikturan.com/index.php?kid=5&mid=32 gibi makaleler kategorisine bağlanıp oradan makaleler tablosundaki ilgili makale kategorilerini ve makaleyi sayfaya basıyorum. Ama bu linkin
www.tarikturan.com/index.php?kid=5&mid=32 yerine
www.tarikturan.com/makaleler/3-makale-basligi.html şeklinde olmasını ve hatta alt alta olan makale kategorilerinde de ne gibi bir rewrite rule ya da benzeri bir kural yazacağımı henüz bulamadım. Yaptığım çalışmalarda sanki dizinler değişti ve css dosyası görülmedi falan... Baya hata ile karşılaştım. Önce hatamın kategori kayıtları ile makale kayıtlarının ayrı tablolarda tutulması olarak zannettim. Fakat iİnternette araştırdığım zaman farklı iki tablo arasında kayıt tutmanın htaccess konusuyla alakası olmadığını ve sadece yönlenecek adres için doğru kuralı yazmam gerektiğini gördüm. Ama birçok yöntem denesem de örneğin : kategorilerden makaleler yazısına tıklayınca (www.tarikturan.com/index.php?kid=5) ve oradan "bilgisayar dersleri" adında bir makale kategorim var ve bunun altında "word dersleri" kategorim var ve de bu alt kategorinin içinde bazı makaleler var mesela "Metinleri biçimlendirmek" adlı bir sayfam var. Yani buna öyle bir htaccess kuralı yazmalıyım ki sonuç ;

www.tarikturan.com/index.php?kid=5&mid=4 yerine (makaleler > bilgisayar dersleri > word dersleri > metinleri biçimlendirmek.html )

www.tarikturan.com/bilgisayar-dersleri/ ... irmek.html olsun...

Bu tablodaki yapıdan ilgili 4.makale adresini :

www.tarikturan.com/index.php?kid=5&mid=4 bu şekilden
www.tarikturan.com/bilgisayar-dersleri/ ... irmek.html şekline nasıl çevirebilirim ?

Umarım sorunumu anlatabilmişimdir. Yardımlarınız için şimdiden teşekkür ediyorum.
 
Sadece htaccess ile yapabileceğinden emin değilim galiba.. uri routing php ile yönlendirme kod desteği yazman gerekebilir ( $_SERVER['REQUEST_URI'] ile url alıp, parçalara bölüp, tekrar birleştirme gibi )

Şimdi birden fazla değişken yolluyorsun url'ye..
Bunları mutlaka $1, $2, $3 şeklinde htaccess içinde belirtmelisin. Ama bazılarında kategori sayısı az yada çok.

RewriteEngine on
RewriteBase /sitem
RewriteRule ^([0-9]+)/([0-9]+)-(.*).html$ /sitem/index.php?kid=$1&mid=$2

böle bişi elde edilir senin url sisteminle.. Tahminimce REQUEST_URI kullanıp php kodlarıyla url parçala birleştir yapcaksın..
 
Fatih hocam cevabın için teşekkür ederim. Fakat dediğin yöntem binevi regex yapmaktan daha güzel görünse de url parçalama belki performans olarak hiti yükselen sitelerde pek iyi olmaz...

Kod:
RewriteEngine on
RewriteBase /sitem
RewriteRule ^([0-9]+)-([0-9]+)-(.*).html$ /sitem/index.php?kid=$1&mid=$2

kuralını yazınca (sayılar arasına - işareti koyarak) sadece kategori id (kid) görülüyor ve makale id (mid) ortalıkta yok...sürekli anasayfaya yönleniyorum.

benim htaccess dosyam :

Kod:
RewriteEngine on
RewriteBase /sitem
RewriteRule ^([0-9]+)-(.*).html$ /sitem/index.php?kid=$1
RewriteRule ^([0-9]+)-([0-9]+)-(.*)-makalesi.html$ /sitem/index.php?kid=$1&mid=$2

www.tarikturan.com/86-5-yaziyi-bicimlen ... alesi.html şeklinde linkler çalışmıyor.Bu şekilde denediğimde linklerim örneğin : 86-5-yaziyi-bicimlendirme-makalesi.html şeklinde olduğunda (86 sayısı makaleler kategorisini ve 5 sayısı makale id sini belirtiyor.) Fakat bu link bu rewrite rule ile olmuyor. $1 yani kid sayfaya basılıyor ama $2 yani mid görünmüyor... ki sadece makale kategorisinin anasayfası çıkıyor. Seçilen makale ekranda görünmüyor? Yani uzun lafın kısası yönlendirmedeki ikinci değişkeni alamıyorum?

Ama linki : index.php?kid=86&mid=5 şeklinde yapınca makaleyi ekrana basabiliyorum... Yani şu makale id si neden alınamıyor bunu en azından çözmeliyim ?
 
BBNET
Geri
Üst