• 02-07-2014, 12:53:01
    #1
    Üyeliği durduruldu
    Selamlar. bu aralar codeignitier e merak saldım.

    deneme bir uygulama yapıyorum ve bu uygulamada index.php olmasını istemiyorum.

    applications/config/config.php içeriğini şu şekilde değiştirdim

    $config['index_page'] = '';
    $config['uri_protocol']    = 'REQUEST_URI';
    applications/config/routes.php de default application olarak şunu yazdım

    $route['default_controller'] = "deneme";
    daha sonra bir htaccess ekledim ana klasöre

    RewriteEngine on
    RewriteCond $1 !^(index\.php|resources|robots\.txt)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]
    controllers/deneme.php

    <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    class deneme extends CI_Controller {
        public function index()
        {
            $this->load->view('deneme_view');
        }
        public function bla()
        {
            $this->load->view('bla_view');
        }
    }
    ?>
    views/deneme_view.php

    selaamlar bu bir denemedir
    views/bla_view.php

    selamlar bu bir bla bla dır
    bu şekilde hazırladım


    siteadresi.com/ci <- CODEIGNITIER Burada kurulu
    siteadresi.com/ci/bla
    siteadresi.com/ci/index.php/deneme/bla
    siteadresi.com/ci/deneme/bla

    yazıyorum bu 4 şekilde de hem deneme_view.php den de bla.php sorunsuz çalışıyor.

    siteadresi.com/ci yazınca direkt deneme.php ye yönleniyor çünkü config.php den öyle ayarlı.

    Buraya kadar herşey normal ancak

    siteadresi.com/bla

    yazıyorum

    The page you requested was not found.

    hatası veriyor. default route olarak deneme ayarlı olduğuna göre deneme/bla olarak algılaması gerekmiyor mu? apache modrewrite filan açık. epeyce araştırdım denilenleri yaptım olmadı. yardımcı olabilirseniz sevinirim.


    saygılar.
  • 02-07-2014, 13:06:46
    #2
    $route['bla'] = 'deneme/bla';


    applications/config/routes.php ye bunu ekle.
  • 02-07-2014, 13:12:18
    #3
    Üyeliği durduruldu
    moonly adlı üyeden alıntı: mesajı görüntüle
    $route['bla'] = 'deneme/bla';


    applications/config/routes.php ye bunu ekle.
    teşekkür ederim cevap için. bunu denemiştim evet çalışıyor ancak bu şekilde de her çağıracağımız method için config.php den route eklememiz gerekir.

    Bunu yapmanın başka bir yolu yok mu acaba? genelde yabancı forumlarda .htaccess ile halletmişler

    tabi bir de bu fonksiyona parametre göndermek de var

    siteadresim.com/ci/bla/parametre

    gibi. bunun için de routes e eklemeler yapmak gerekmezmi. çok sağlıklı bir yöntem gibi gelmiyor.
  • 03-07-2014, 02:18:20
    #4
    CodeIgniter yapısı gereği Controllerin baş harfi büyük olması gerekmektedir.

    class Deneme
  • 02-08-2014, 17:03:31
    #5
    Üyeliği durduruldu
    siteadi.com/ci/bla şeklinde çalışır ancak siteadi.com/bla yazınca çalışmaz tabikide.
    Codeigniter "ci" klasöründe ise ancak o klasörde çalışır. Tüm dosyaları "ci" klasörüne atıp ana dizinde çalışmasını istiyorsan codeigniter anadizinindeki index.php dosyasına "ci" dizinini belirtip sitenin anadizinine at.