• 08-02-2013, 18:53:18
    #1
    Merhabalar,
    Bir sıkıntım var.
    .htaccess dosyam
    RewriteRule ^([^/]+)/sayfa/([^/]+)/$ category.php?sef=$1&sayfa=$2 [L]  
    RewriteRule ^([^/]+)/$ category.php?sef=$1 [L]
    RewriteRule ^arama/sayfa/(.*)/ search.php?sayfa=$1 [L]
    RewriteRule ^arama/ search.php [NC]
    kategorilerimi
    www.example.com/kategoriadi/ şeklinde yapılandırdım.
    arama yapmak istediğimde verilerim
    www.example.com/arama/ sayfasına post ediyorum.

    /arama/ tagını kategori adı olarak görüp böyle bir kategori yok hatası alıyorum. Karışıklığı nasıl önleyebilirim ?
  • 08-02-2013, 18:54:55
    #2
    arama sayfasını www.example.com/arama/aranacakkelime olarak yapabilirsiniz.
  • 08-02-2013, 19:25:20
    #3
    PsdBul adlı üyeden alıntı: mesajı görüntüle
    arama sayfasını www.example.com/arama/aranacakkelime olarak yapabilirsiniz.
    Form'u POST mehoduyla yolluyorum. GET ile yolluyacağım.
    Peki
    <form action="<?php echo URL."arama/"; ?>"şeklinde bunu nasıl

    arama/aranacakkelime olarak çevircem ?
    POST ile yollasam olmuyor.
    GET ile yapsam arama/?search=aranankelime oluyor..
  • 08-02-2013, 19:41:37
    #4
    hocam get ile yapabilirsiniz aslında. get ile yolladığınızda arama/?search=aranankelime bu tarzda olur ve url lerde url ye tıklamadan ?den sonrası gözükmez. yine arama/ olarak gözükür. sizde search=(.*) şekliyle htaccess te alırsınız.
  • 08-02-2013, 19:58:29
    #5
    PsdBul adlı üyeden alıntı: mesajı görüntüle
    arama sayfasını www.example.com/arama/aranacakkelime olarak yapabilirsiniz.
    PsdBul adlı üyeden alıntı: mesajı görüntüle
    hocam get ile yapabilirsiniz aslında. get ile yolladığınızda arama/?search=aranankelime bu tarzda olur ve url lerde url ye tıklamadan ?den sonrası gözükmez. yine arama/ olarak gözükür. sizde search=(.*) şekliyle htaccess te alırsınız.
    hocam şuanda get ile yapıyorum. arama formuna aranacak kelime yazdığımda
    arama/?search=aranacakkelime yazıyor. bu url yi saklayamıyorum.
  • 08-02-2013, 21:27:38
    #6
    RewriteRule ^arama/sayfa/(.*)/ search.php?sayfa=$1 [L]
    RewriteRule ^arama/([a-zA-Z0-9-]+)/$ search.php [L, NC]
    RewriteRule ^([^/]+)/sayfa/([^/]+)/$ category.php?sef=$1&sayfa=$2 [L]
    RewriteRule ^([^/]+)/$ category.php?sef=$1 [L]

    Böyle çalışması lazım. Özel kurallar genel kurallardan daha yukarıda olmalı ve son kural olarak tanımlanmalı.


    Bir de get ile göndermek istiyorsan ve get parametresi yerine url göstermek istiyorsan javascript kullanmalısın

    form için
    <input name="arama" type="text" id="arama" />            
    <input type="submit" name="gonder" value="" id="gonder" onclick="javascript:FormGonder()" />
    head içine javascript olarak bu fonksiyonu yerleştir

    <script type="text/javascript">
        function FormGonder(){
            var Aranacak= document.getElementById("arama").value();
            window.location = "http://www.siteadresi.com/arama/" + Aranacak + "/";
        }
    </script>
  • 09-02-2013, 11:33:21
    #7
    digiklan adlı üyeden alıntı: mesajı görüntüle
    RewriteRule ^arama/sayfa/(.*)/ search.php?sayfa=$1 [L]
    RewriteRule ^arama/([a-zA-Z0-9-]+)/$ search.php [L, NC]
    RewriteRule ^([^/]+)/sayfa/([^/]+)/$ category.php?sef=$1&sayfa=$2 [L]
    RewriteRule ^([^/]+)/$ category.php?sef=$1 [L]

    Böyle çalışması lazım. Özel kurallar genel kurallardan daha yukarıda olmalı ve son kural olarak tanımlanmalı.


    Bir de get ile göndermek istiyorsan ve get parametresi yerine url göstermek istiyorsan javascript kullanmalısın

    form için
    <input name="arama" type="text" id="arama" />            
    <input type="submit" name="gonder" value="" id="gonder" onclick="javascript:FormGonder()" />
    head içine javascript olarak bu fonksiyonu yerleştir

    <script type="text/javascript">
        function FormGonder(){
            var Aranacak= document.getElementById("arama").value();
            window.location = "http://www.siteadresi.com/arama/" + Aranacak + "/";
        }
    </script>
    Olmadı hocam sorun devam ediyor. Htaccess i öyle koyduğum zaman sunucu 500 hatası alıyorum.
  • 09-02-2013, 12:25:25
    #8
    kopyala yapıştır yaptım ilk satırdaki kuralın sonunda bitiş işareti konulmamış.
    şöyle olunce düzelmesi
    RewriteRule ^arama/sayfa/(.*)/$ search.php?sayfa=$1 [L]

    ayrıca ikinci satırda arama parametresini vermemişiz o da şöyle olmalıydı arama terimini çekebilmemiz için

    RewriteRule ^arama/(.*)/$ search.php?aranacak=$1 [L, NC]
  • 09-02-2013, 18:04:08
    #9
    digiklan adlı üyeden alıntı: mesajı görüntüle
    RewriteRule ^arama/sayfa/(.*)/ search.php?sayfa=$1 [L]
    RewriteRule ^arama/([a-zA-Z0-9-]+)/$ search.php [L, NC]
    RewriteRule ^([^/]+)/sayfa/([^/]+)/$ category.php?sef=$1&sayfa=$2 [L]
    RewriteRule ^([^/]+)/$ category.php?sef=$1 [L]

    Böyle çalışması lazım. Özel kurallar genel kurallardan daha yukarıda olmalı ve son kural olarak tanımlanmalı.


    Bir de get ile göndermek istiyorsan ve get parametresi yerine url göstermek istiyorsan javascript kullanmalısın

    form için
    <input name="arama" type="text" id="arama" />            
    <input type="submit" name="gonder" value="" id="gonder" onclick="javascript:FormGonder()" />
    head içine javascript olarak bu fonksiyonu yerleştir

    <script type="text/javascript">
        function FormGonder(){
            var Aranacak= document.getElementById("arama").value();
            window.location = "http://www.siteadresi.com/arama/" + Aranacak + "/";
        }
    </script>
    digiklan adlı üyeden alıntı: mesajı görüntüle
    kopyala yapıştır yaptım ilk satırdaki kuralın sonunda bitiş işareti konulmamış.
    şöyle olunce düzelmesi
    RewriteRule ^arama/sayfa/(.*)/$ search.php?sayfa=$1 [L]

    ayrıca ikinci satırda arama parametresini vermemişiz o da şöyle olmalıydı arama terimini çekebilmemiz için

    RewriteRule ^arama/(.*)/$ search.php?aranacak=$1 [L, NC]
    Yine olmadı hocam.