Cevaplar
-
Dinamik URL şu şekildeyse:
www.siteadi.com/index.php?sayfa=iletisim www.siteadi.com/index.php?sayfa=incelemeler&makale=x
HTACCESS:Options +FollowSymLinks RewriteEngine on RewriteRule /sayfa/(.*) index.php?sayfa=$1 RewriteRule /sayfa/(.*)/makale/(.*)\.html index.php?sayfa=$1&makale=$2
-
magesuko
aslında tam adres şu şekilde hocam
index.php?git=incelemeler&islem=incelemedetay&inceleme_id=25
ben mesele bu şu şekilde görünsün istiyorum
www.siteadresi.com/incelemeler/incelemedetay/inceleme-baslik.html yani id görünmese iyi olur linkte ama mecbur görünmesi gerekiyosada html den önce biyere eklenebilir tabi12 yıl önce yazılmış
-
-
Daha kolay ve esnek bir yöntem önereyim öyleyse. htaccess i aşağıdaki gibi düzenleyin. bu şekilde her sorgu index.php ye gidecek ve tüm get requestleri $route dizisine aktarılacak. buna göre de işlemleri yapacağız.
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*)$ index.php?route=$1 [L]
daha sonra index.php dosyanızda bu $route dizisine göre include yaparak istediğiniz sayfaları çağırabilirsiniz.
index.php içeriğiif (!empty($_GET['route'])) { $route = split("/", $_GET['route']); } else { $route[0] = ''; } switch ($route[0]) { case '': include('./main.php'); break; case 'iletisim': include('./iletisim.php'); break; case 'sayfa': include('./sayfa.php'); break; case 'post': include('./post.php'); break; case 'kategori': include('./kategoriler.php'); break; }
örnek vereyim www.aaa.com/sayfa/10/bu-bir-sayfadir.html
$route[0] = sayfa
$route[1] = 10
$route[2] = bu-bir-sayfadir.html
değerlerini alır ve bu değerleri kullanarak da istediğiniz işlemleri yaptırabilirsiniz. dikkat etmeniz gereken diğer bir nokta bu durumda ana sayfanız main.php gibi farklı bir sayfa olmalı zira index.php yi yönlendirmeler için kullanıyoruz.-
magesuko
hocam yöntemini denemedim ama yapamadım. Şimdi bendeki sitenin sistemi şu şekilde
index.php var $git diye bir değişkeni switch ile döndürüyorum yani atıyorum haberler yüklenecekse sayfaya:
index.php?git=makaleler olarak geliyor link ve bu link şunu tetikliyor
switch($git){
case "haberler":
include_once ("haberler.php");
break;
}
daha sonra haberler içinde bir haberin detayı verilecekse haberler.php dosyasındada switch mekanizması var o da $islem değişkenine bakıyor yani
switch($islem){
case "haberdetay":
haberdetay();
break;
}
olarak bir fonksiyon çalıştırıyor bu yapıya nasıl uyarlayacağım bu kodları ?12 yıl önce yazılmış -
magesuko
denedim ama yapamadım olacakdı pardon yanlış yazmışım :D12 yıl önce yazılmış -
gblack
örnek vermiştim ama tekrar yazayım
www.aaa.com/sayfa/10/bu-bir-sayfadir.html
$route[0] = sayfa
$route[1] = 10
$route[2] = bu-bir-sayfadir.html
şeklinde link verdiğinizde buradaki değerler $route array ına alınıyor. ve istediğiniz değer üzerinden alt sayfalarda işlem yapabiliyorsunuz. bu örnekte
$route[0] (sayfa) ile sayfa.php yi çağırdığını düşünelim. sayfa.php içindeyse $route[1] (10) ile sayfanın id sini kullanarak database den ilgili sayfa içeriğini okutabilirsiniz.
url içinde "/" ile bölünmüş kaç tane değer varsa onlarda array da ona göre sıralanır ve isteğinize göre kullanabileceğiniz bir sürü değişkeniniz olur.12 yıl önce yazılmış -
gblack
alt sayfalarda da şu şekilde kullanabilirsiniz.
yukardaki açıklamama göre örneğin sayfa.php için şu şekilde.
if (!empty($route[1])==10) { .. .. işlemler .. .. }
12 yıl önce yazılmış -
magesuko
hocam bunu denedimde işte index i görmedi o yüzdende css dosyasınıda göremedi falan yani istediğim gibi uyarlayamadım tekrar uğraşayım bakalım. yalnız htaccess in mantığını anlsam daha çok işime yaracak.
Yani şu kodu ele alırsak
ReWriteRule ^([a-z0-9_-]+)$ index.php?git=$1 [NC]
şimdi bu koda göre ^ile başlayan ve $ ile biten kısım a-z ve 0-9 arasındaki tüm karakterleri al index.php?git=$1 olarak yönlendir diyor heralde yani ben sayfamdan linki a href=iletisim diye verirsem bu o iletisim kelimesini alıyor ve $1 yerine koyarak gerçek olması gereken adresi arka planda çalıştırıyor. ama ben bunu $2, $3 gibi diğer değişkenler olduğunda nasıl bir yazım stiliyle yazmam gerektiğini çözemedim henüz :( yani amacım işin mantığını iyice anlamak12 yıl önce yazılmış
-