Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

htaccess ile ilgili bir soru

merhaba arkadaşlar htaccess ile şu aşağıdaki linki aşağıda yazdığım hale nasıl getirebilirim olması gereken kod nedir

mevcut link: " index.php?git=incelemeler&islem=incelemedetay&inceleme_id=25 "
olmasını istediğim link " www.siteadresi.com/incelemeler/makale-adi.html "

şu an htaccess dosyamda aşağıdaki yazılı ve
index.php?git=iletisim www.siteadresi.com/iletisim şeklinde görünüyor aynı zamanda bu yapıyıda korumak istiyorum.

RewriteEngine on
ReWriteRule ^([a-z0-9_-]+)$ index.php?git=$1 [NC]
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • GncArt adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    42 cevap - 13 soru
    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 adlı üyenin fotoğrafı 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 tabi
      12 yıl önce yazılmış
  • gblack adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    14 cevap - 8 soru
    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ği
    if (!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 adlı üyenin fotoğrafı 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 adlı üyenin fotoğrafı magesuko
      denedim ama yapamadım olacakdı pardon yanlış yazmışım :D
      12 yıl önce yazılmış
    • gblack adlı üyenin fotoğrafı 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 adlı üyenin fotoğrafı 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 adlı üyenin fotoğrafı 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 anlamak
      12 yıl önce yazılmış