• 27-09-2021, 16:51:22
    #1
    Merhaba arkadaşlar,

    localhost üzerinde php bilgimi geliştirmek için çalışmalar yapıyorum. Amatör seviyedeyim. Bu yüzden yardımcı olacağınız zaman başlangıç seviyesinde olduğumu bilerek anlatırsanız çok memnun olurum.

    URL kısmının temiz ve güvenli olması için .htaccess üzerinde kurallar oluşturdum.

    Çalıştığım dizin: localhost/yonetimpaneli/

    Options -indexes
    RewriteEngine On
    RewriteBase /yonetimpaneli/
    RewriteRule ^destek/acik-talepler$ index.php?sayfa=acik-talepler [NC]
    RewriteRule ^destek/kapali-talepler$ index.php?sayfa=kapali-talepler [NC]
    RewriteRule ^destek/bekleyen-talepler$ index.php?sayfa=bekleyen-talepler [NC]
    Bu kurallar düzgün bir şekilde çalışmaktadır. Anlayacağınız üzere bir destek sistemi oluşturmaya çalışıyorum. Örneğin "Açık Talepler" sayfasından bir talebi seçtiğimde standart olarak

    index.php?sayfa=talep-detay?ticket_id=1
    yönlendirmesi ile sayfayı açabiliyorum. Fakat gözükmesini istediğim URL bu şu şekilde olmalı:

    localhost/yonetimpaneli/destek/talep-detay


    Parametreli bir şekilde .htaccess'e nasıl gönderim yapabileceğimi bilemedim. Araştırdım ve şu kuralı denedim.

    RewriteRule ^destek/talep-detay$ index.php?sayfa=talep-detay?ticket_id=$1 [NC]


    Talep detay sayfasını açmıyor maalesef.

    İlgili talebin detaylarını açmak istediğim butona basınca parametreyi nasıl göndereceğimi de bilemedim.

    Talebin detayını açmak istediğim butonun kodu:

    <a href="<?= SITE ?>index.php?sayfa=talep-detay&ticket_id=<?= $acik_talepler[$i]["id"] ?>" class="btn btn-info btn-sm">Görüntüle</a>
    Sayfa Değişim Kodu:


    <a class="collapse-item" href="<?=SITE?>destek/acik-talepler">Açık Talep</a>
    <a class="collapse-item" href="<?=SITE?>destek/kapali-talepler">Kapanan Talep</a>
    <a class="collapse-item" href="<?=SITE?>destek/bekleyen-talepler">Bekleyen Talep</a>

    Konu ile ilgili yardıma ihtiyacım olduğunu düşünüyorum.

    Teşekkürler.
  • Kabul Edilen Cevap
    • 1 Beğeni
      Merhaba şöyle bir örnek hazırladım sizin için;
      RewriteEngine On
      RewriteRule ^destek/([0-9a-zA-Z-_]+)/([0-9a-zA-Z-_]+)$  ./index.php?sayfa=$1&ticket_id=$2 [L,QSA]
      destek/talep-detay/1 şeklinde çalışacaktır
  • 27-09-2021, 17:04:53
    #2
    Bu cevap, konu sahibi tarafından kabul edilebilir bir cevap olarak işaretlendi.
    Merhaba şöyle bir örnek hazırladım sizin için;
    RewriteEngine On
    RewriteRule ^destek/([0-9a-zA-Z-_]+)/([0-9a-zA-Z-_]+)$  ./index.php?sayfa=$1&ticket_id=$2 [L,QSA]
    destek/talep-detay/1 şeklinde çalışacaktır
  • 27-09-2021, 17:19:47
    #3
    Scorpion2763 adlı üyeden alıntı: mesajı görüntüle
    Merhaba şöyle bir örnek hazırladım sizin için;
    RewriteEngine On
    RewriteRule ^destek/([0-9a-zA-Z-_]+)/([0-9a-zA-Z-_]+)$  ./index.php?sayfa=$1&ticket_id=$2 [L,QSA]
    destek/talep-detay/1 şeklinde çalışacaktır
    Hocam harikasınız. Yanıtınız beni aradığım cevaba götürdü. Ayrıca yukarıda paylaştığım .htaccess dosyamın içeriğinde tekrar eden 3 satırı da sizin verdiğin kural ile tek satır şeklinde düzenledim.

    Url sonunda ki id değerini de kaldırma şansımız var mıdır peki?
  • 27-09-2021, 17:56:13
    #4
    hakanbey58 adlı üyeden alıntı: mesajı görüntüle
    Hocam harikasınız. Yanıtınız beni aradığım cevaba götürdü. Ayrıca yukarıda paylaştığım .htaccess dosyamın içeriğinde tekrar eden 3 satırı da sizin verdiğin kural ile tek satır şeklinde düzenledim.

    Url sonunda ki id değerini de kaldırma şansımız var mıdır peki?
    Rica ederim, demek istediğinizi şu şekilde anladım hem yonetimpaneli/destek/talepler hemde yonetimpaneli/destek/talep-detay/999 şeklinde kullanmak istiyorsunuz. Eğer anladığım doğruysa bu şekilde çözebiliriz;

    RewriteEngine On
    RewriteRule ^destek/([0-9a-zA-Z-_]+)$  ./index.php?sayfa=$1 [L,QSA]
    RewriteRule ^destek/([0-9a-zA-Z-_]+)/([0-9a-zA-Z-_]+)$  ./index.php?sayfa=$1&ticket_id=$2 [L,QSA]
  • 27-09-2021, 18:15:49
    #5
    Scorpion2763 adlı üyeden alıntı: mesajı görüntüle
    Merhaba şöyle bir örnek hazırladım sizin için;
    RewriteEngine On
    RewriteRule ^destek/([0-9a-zA-Z-_]+)/([0-9a-zA-Z-_]+)$  ./index.php?sayfa=$1&ticket_id=$2 [L,QSA]
    destek/talep-detay/1 şeklinde çalışacaktır
    Scorpion2763 adlı üyeden alıntı: mesajı görüntüle
    Rica ederim, demek istediğinizi şu şekilde anladım hem yonetimpaneli/destek/talepler hemde yonetimpaneli/destek/talep-detay/999 şeklinde kullanmak istiyorsunuz. Eğer anladığım doğruysa bu şekilde çözebiliriz;

    RewriteEngine On
    RewriteRule ^destek/([0-9a-zA-Z-_]+)$  ./index.php?sayfa=$1 [L,QSA]
    RewriteRule ^destek/([0-9a-zA-Z-_]+)/([0-9a-zA-Z-_]+)$  ./index.php?sayfa=$1&ticket_id=$2 [L,QSA]
    Hayır hocam.

    Bu sayfa açık talepler sayfası. Görüntüle butonuna basıldığında talep-detay sayfası açılıyor.



    Burada bakınız URL sonunda ticket_id yer alıyor. "Onu da orada silip temiz şekilde localhost/yonetimpaneli/destek/talep-detay yazısı kalsa olur mu" diye sormuştum.

  • 27-09-2021, 18:20:58
    #6
    Yapmak istediğinizi htaccess ile değilde POST methoduyla yapabilirsiniz her görüntüle butonuna ait bir ID value olabilir ve görüntüle butonu form'u submit etmekle görevli olabilir. Talep detay sayfasında gelen id'yi Postdan alıp veriyi işler. Javascript ile daha minimize ve daha sağlıklı yapılar kurulabilir.
  • 27-09-2021, 18:24:23
    #7
    Scorpion2763 adlı üyeden alıntı: mesajı görüntüle
    Yapmak istediğinizi htaccess ile değilde POST methoduyla yapabilirsiniz her görüntüle butonuna ait bir ID value olabilir ve görüntüle butonu form'u submit etmekle görevli olabilir. Talep detay sayfasında gelen id'yi Postdan alıp veriyi işler. Javascript ile daha minimize ve daha sağlıklı yapılar kurulabilir.
    Anladım, bahsettiğiniz yöntem ve yardım için teşekkür ederim.