Angelo bu verdiğin örnek tüm işlemi basit bir şekilde yapıyor fakat benim şu anki php bilgim bu örnekle çalışmaya müsait değil o yüzden bu kodun genel mantığını anladıktan sonra ortaya birşeyler çıkarabilirim belki. Ben problemleri genelde basit şekillerde çözdüğüm için kulağı tersten göstermeye alışığım.

Incelediniz mi bilmem ama WordPress'de bu şekilde calisiyor. En saglikli yontem bu.

Evet kod degisken dedigim gibi. Mantik HTACCESS ile her sey icin kural belirleyip bogusacaginiza merkezi bir sistem kuruyorsunuz. PHP'de url yi duruma gore haritalamak daha kolay nitekim. htaccess den kurtuldugumdan beri geceleri daha rahat uyuyorum

Selam RewriteEngine on RewriteRule ^ / .html$ seo1. php?kategori=$1&amp;baslik=$2 RewriteRule ^ /$ seo2. php?kategori=$1 RewriteRule ^ $ seo3. php?sayfa=$1 . htaccess içinde yukarıdaki 3 kural var. 1. kuralın görevi kategori ve basligi alip en önemli görevi üstleniyor. Tüm döküman linklerini seolu halde kullanmamı sağlıyor 2. kural domain/kategori/ şeklinde olan girişleri seoluyor ve o kategoriye ait olan dökümanları arşiv halinde listelememe yardımcı oluyor. 3. kural domain/iletisimsayfasi veya domain/makaleler gibi olan sayfaları. php veya.html ek kullanmadan göstermemi sağlıyor. Buradaki problem 3. kuralı açtığımda ilk 2 kural çalışmıyor. 3. kuralı kapadığımda ilk 2 kural sorunsuz çalışıyor. Benim hepsini çalıştırabileceğim bir kural varmıdır veya ne tür bir yöntemle bu işi çözebilirim?

Şu noktada kodları ortaya koymadan çözüm üretemeyiz.

Bunu bu sekilde yapan binlerce kisi ve script aslinda kulagini tersten gosteriyor. Ne gerek var bu kadar kural tanimlamaya. Sadece ucuncu kurali tanimlayabilirsin. Sitene gelen her turlu hiti tek bir dosyaya yonlendirirsin. Router gorevi gorur bu dosya. Nasil router modemden gelen interneti paylastiriyor, bu dosyada gelen tum hitleri URL Yapisina gore dagitir. Tum dosyalar route. php ye yonlense. Route. php de $_SERVER ye bakilsa. - bu degiskenin degeri mesela /yazi dersin ki tek slash varsa, bir yazidir, include yazi. php - bu degiskenin degeri /kategori/yazi iki slash varsa kategori alt dizinidir, include seo1. php

Gerçektende tek sayfada sorunsuz hızlı bir biçimde çalışıyor teşekkürler Angelo

Loi, şu anda 3 tane değişik alan için yazılmış if sorguları dışında başka bir kodum yok. Gelen veriyi alıyorum explode yapıyorum ve sorguya yolluyorum. Angelo, anladım fakat gelen yanlış veya kırık linkler route sayfasına yönleniyor ve ortaya sadece boş bir sayfa çıkıyor. Benim bunu yakalayabilmem lazım ki 404 veya index sayfasına yönlendirebileyim. Bu yüzden her gelen veri için ayrı bir sorgu ve karşılaştırma yazıyorum ve denemeler yapıyorum. Ayrı şekilde yapılan sorgu ve karşılaştırmalarla çözüm bulduklarım : - domain/kategori ve domain/kategori/ aynı şekilde algılanıyor. - domain/kategori/seo-yazi.html şeklinde olan ve domain/kategori/seo-yazi5.html şeklinde yanlış yazılmış bir yazıyı kategori olarak algılamıyor ve hata sayfasına yonleniyor. - Yukarıdaki gibi doğru bir yazi linkinin kategori bölümü değiştiğinde hata sayfasına yönleniyor. Çözüm aradıklarım : - Boş sayfaya yani route sayfasına yönlenenler için karşılaştırma ve sorgu yapmam gerekiyor. - domain/kategori/ veya kategori şeklinde ki girişlerde o kategoriye ait verileri listeletmem lazım.

Bu yöntem bir problem makinası oldu benim için mübarek - Olmayan veya yanlış şekillerde giriş yapılan sayfa, kategori ve yazılar boş bir sayfaya yönleniyor bazıları ise else tarafında yazdığım kurala denk geliyor. Tamamını hata mesajına nasıl yönlendirebileceğimi bulamadım. Bir taraftan bunu yapmaya çalıştığımda esas sorgular bozuluyor. İki ucu. oklu değnek misali. - Her gelen veri aynı sayfada bulunan ve 3 değişik alan için yazılmış sorgulardan geçiyor. Çünkü gelen benzer verileri bu sorgular ayırt edemediği için çıkan sonuçlarda sorunlar çıkabiliyor. Örnek : Kategori sorgusu domain/kategori 'yi kategori olarak görürken domain/kategori/ 'yi tanımıyor bir fazla / işareti yüzünden. Eğer sorgu içinde / işaretine ait sayıyı bir fazla arttırırsam bu sefer gelen değişik veriler üzerinde sorunlar çıkıyor. Yazı sorgusu domain/kategori/seo-yazi.html şeklinde veritabanında kayıtlı olan yazıyı tanırken. Sadece kategori kısmı değiştirildiğinde yazı sorgusu tarafından yakalanamıyor ve kategori sorgusu tarafından yakalanıp böyle bir kategori yok mesajını verdirebiliyor. Mesela domain/kategori veritabanında varken ve sorgular tarafından tanınıyorken domain/kategorim veya domain/kategori5 direkt boş bir sayfaya yönleniyor. Aynı şey sayfa ve yazıların içinde bulunduğu linkler içinde geçerli. Yanlış gelen verilerin çoğu boş sayfaya yönleniyor. Bu arada çözemediğim diğer problem domain/kategori veya domain/sayfaismi şeklindeki girişlerde ilgili kategoriye veya sayfaya ait veriler için bir. php dosyası oluşturup verileri ordan almam gerekiyor veritabanına girdigim isim ile oluşturduğum. php uzantılı dosyayı nasıl ilişkilendirebilirim. php uzantısı görünmeden.

if sorgularını birleştirmiştim fakat karşılaştırma işlemlerinde yine sorunlar çıktığını gördüm. Senin dediğin şekilde yapmam gerekiyor. Sabahın 4 'ünde iyi destek çıktın Loi sağolasın

OsmanAtabey' Alıntı:

SQL sorgusundan dönen sonuclar arasında, type sutunundan gelen verinin degerine gore kategori sayfası olup olmadığını ayrıştırabilirsin Kısacası SQL den gelen değerlerde kategori icin 1 content için 0 değerlerini vermiştik varsayıyorum ve SQL deki türü belirleyen değerinde $sql oldugunu varsayarak PHP:

Helpdesk Loi.

Detayları anlamak için sadece gelen veriyi aldım explode ile parçaladım ve mysql sorgusuna gönderip sonuca ulaştım. Fakat bu şekilde yapınca url üzerine herşeyi ekleyebiliyorum ve hiçbir 404 hatası almıyorum. Bu arada bende kendim için wordpress benzeri bir içerik yönetim sistemi yapmaya çalışıyorum. Admin paneli hazır ve şu seo kısmınıda atlattık mı sonuca ulaşıcam

Benzer URL'ler icin type uretip db ye koyacaksin. Type=1 Type=2 gibi. Tabiki URLler birbirine benzeyecek bunun onune gecemezsin. Hicbirseyi yakalayaman URL'ler router inda en son else adiminda header 301 ana sayfa yaparsin olabilir. Boylece kirik link veya bos ekran gelmez.

kod da hata olabilir ama basitce mantik su. sen de 3 senaryo var, bazilarinda daha cok oluyor ona gore deisik yonlendirme kurulumlari yazilabilir. biz alisveris sepeti uygulamasinda her url yi veritabanina yazip ne sayfasi oldugunu oradan cekiyoruz. boylece istedigimiz sayfaya istedigimiz URL yi verebiliyoruz. Slash, dash sayisi, basa sona belli bir prefix ya da makale, kategori id'sini de URL icinde filan verme gibi uygulamalara gerek kalmiyor. PHP:

Angelo route. php için küçük bir örnek fena olmazdı ama yinede bu söylediklerinden yola çıkarak yapmaya çalışayım teşekkürler

Üzerinde çalıştığım sayfa içeriği iyice dağılmış Else kısımlarını atlamışım bayağı fakat şimdi güzel bir şekilde çalışıyor. Şu anda bir tek sorun gözüküyor oda sayfa ile kategori yapılarını veritabanından alıp aynı sayfada if ile sorgularken çakışma yaşanıyor olması. Çünkü her ikiside domain/sayfam ve domain/kategori şeklinde ve herhangi bir uzantısı yok.

olmasıda gerekmiyor type diye bir sutun ac kategori ise 1 sayfa ise 0 ver. Check ettir. Boylece kategorileride ayrı birer content gibi sunabilirsin.