• Menghilangkan index.php di Code Igniter untuk di Berbagai Server

    Kali ini, Cheyuz bakal ngasi tips buat temen2 semua pengguna Code Igniter (CI), berhubung aku sekarang lagi ngulik Framework ini, hehe… yaa sekedar berbagi pengalaman lah..

    Perlu dicatat bahwa kalo qta make Framework CI ini, kita bakal ngeliat kalo-kalo ternyata CI itu memakai tulisan index.php di URLnya, baru diikuti dengan /controller/action… nah ini merepotkan bagi kita yang suka dengan Pretty URL (URL yang cantik, indah, enak untuk dibaca :P )..

    kalo misalnya ada controller Berita, kemudian nama actionnya add, misal nama situsnya http://www.cheyuz.com maka di URL harus seperti ini:

    
    http://www.cheyuz.com/index.php/berita/add
    

    Nah, biar URL itu lebih enak buat dibaca, mending kita hilangkan index.php nya… jadi seperti ini:

    
    http://www.cheyuz.com/berita/add
    

    Caranya sangat sederhana,, bagi pecinta maupun pengembang framework mungkin udah ga asing lagi memakai cara ini, cara yang dipake untuk ngerewrite URL, kita memakai 1 file yang bernama .htaccess.

    Kita buat file .htaccess di notepad:

    RewriteEngine on
    RewriteRule ^$ index.php [L]
    RewriteCond $1 !^(index.php)
    RewriteRule ^(.*)$ index.php/$1 [L]
    

    kemudian save file tersebut di webroot/base_url kamu…
    sekarang kamu bisa memanggil halaman dengan URL seperti ini:

    
    http://www.cheyuz.com/berita/add
    

    yang pada hakikatnya sama dengan:

    
    http://www.cheyuz.com/index.php/berita/add
    

    TAPII,,,,, ada suatu masalah…
    sama seperti waktu kemaren aku nge-rombak http://www.cheyuz.com..

    Kan aku nge-rombak situs Cheyuz.com dari asalnya yang ga pake framework yang kini udah pake CI.. Nah pas kemaren itu aku ngupload hasil rombakanku ke hosting.. nah tau-tau pas diupload, ternyata aneh, kenapa ketika aku ketik:

    
    http://www.cheyuz.com/diary
    

    ato yang lainnya ternyata ga bisa kebuka, yang keluar tampilan home terus…
    Tetapi kalo URL nya seperti ini bisa…

    
    http://www.cheyuz.com/index.php/diary
    

    Nah, kalo temen2 juga ngalamin hal yang sama, ternyata masalahnya ada config CI sendiri, yaitu dengan memodifikasi config.php:

    $config['uri_protocol'] = "AUTO";
    

    Diganti dengan

    $config['uri_protocol'] = "REQUEST_URI";
    

    Cuman itu aja masalahnya, gila kemaren aku bingung kok kenapa bisa gini,, eh taunya cuman setting itu aja, hahaha :D

    Mudah2an bermanfaat.. :)

    This entry was posted on Sunday, February 14th, 2010 at 16:40 and is filed under Code Igniter, PHP, Tips, Tutorial, _other. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
  • 92 Comments

    Take a look at some of the responses we have had to this article.

    1. Jan 10th

      @adam: thx infonya gan :)

    2. Jan 10th

      @zay: bentuk file na euweuh ngaranan, langsung “.htaccess”

    3. ocep
      Jan 12th

      Hade cep euy….. sayah nuju enggal pisan diajar c.i

    4. zay
      Jan 14th

      maksud saya mah .htaccess teh extensi file na naon uy hehehee….

    5. cakra
      Jan 27th

      @rani : bisa jadi, fungsi mod_rewrite di apache-nya tidak difungsikan.., jadi file .htaccess nya ga berfungsi, malah muncul pesan Error 500

    6. cakra
      Jan 27th

      @rani : file .htaccess ga berfungsi, biasanya karena modul mod_rewrite yang ada di apache-nya tidak difungsikan. sehingga kalau pakai file .htaccess muncul pesan Error 500

    7. mantap bos… ane udah pusing2 mikirin ini…makasih banyak ya….. email ane ya… tar ane kasih sesuatu…. sebagai ucapan terimakasih

    8. Feb 3rd

      maap mau nanya nih bos,
      aku coba di local pc (localhost) jalan dan aman2 aja, trus pas di upload ke hosting kok malah jadi error ya? 500 dan 404..
      ini nih beberapa konfigurasinya yang udah aku buat :

      di .httaccess ->

      RewriteEngine On
      RewriteBase /deelal/

      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php/$1 [L]

      ErrorDocument 404 /index.php

      =======================================
      trus di config.php ->
      ..
      $config['base_url'] = ‘http://www.namasitus.com/deelal’;
      ..
      $config['index_page'] = ”;
      ..
      $config['uri_protocol'] = ‘AUTO’;

      tapi al hasil tetep gak jalan

      help please.. T_T

    9. Feb 3rd

      @arief: sip gan, thankz :)

    10. Feb 14th

      mas, kalau saya melakukan paging kok index.php nya
      masih ada ya ?, kalau yg paging saya buat sndri gk ikutin tutorial dr mas

      oh ya, kalau nambahin .html gmn ya mas ? padahal sudah di url suffixnya dh di set .html

    11. cahyo
      Feb 20th

      trims kang error 500 dah hilang , namun kemudian muncul page not found 404

    12. maharghi
      Feb 22nd

      eh dah bisa bos

      ane lupa ngesave

      function insert($set){
      $this->db->insert(‘mahasiswa’, $set);
      }

      di mahasiswa_model.php

      makasih ya bos ilmunya

    13. Feb 24th
    14. Feb 24th

      @maharghi: sip2 klo udah bisa gan ;)

    15. wibi
      Mar 8th

      kok saya masih error yah, udah di kasih htaccess

      404 Page Not Found

      The page you requested was not found.

      padahal di confignya udah diganti REQUEST_URI

      $config['uri_protocol'] = “REQUEST_URI”;

    16. Mar 9th

      @wibi: pake XAMPP ga? versi berapa? coba uri_protocol-nya ganti jadi auto..

    17. Mar 9th

      @ocep: sip sip.. :D

    18. uli
      Mar 10th

      gan.. klo ada htaccess kok jadi server eror ya? eror yg muncul -> error 500
      tapi klo htaccess dibuang, bisa masuk ke controllernya tapi pas di klik “tambah data” muculnya “object not found”.
      Mohon bantuannya dong gan… makasi y gan..

    19. broklyn
      Mar 15th

      Gini gan… ane bingung masalah kaya gini… misalkan URL kita rubah dari http://xxx.com/index.php/comment/1 menjadi http://xxx.com/comment/misalkan_aja_kayak_gini.html

      ketemu sedikit tutorial CI, dengan menggunakan Url Helper ( url_title())
      misalkan contoh kaya gini :
      $title = “What’s wrong with CSS?”;
      $url_title = url_title($title, ‘underscore’);
      // Produces: Whats_wrong_with_CSS

      mohon bantuannya dunks gan… thanks sebelumnya…

    20. sobat
      Mar 21st

      bisa dilampirkan hasil akhir filenya ga mas… coz masih blm bisa juga nih.. awalnya kendala eror 404 trus sudah bisa diselesaikan namun muncul kembali error 500, error sudah terselesaikan namun error 404 muncul kembali. Alangkah baiknya dilakukan penjelsan yang detail dan melampirkan file finalnya. untuk tutorial ini. Thanks before

    21. Apr 2nd

      @uli: agan pake CI yg versi berapa??

    22. Apr 2nd

      @broklyn: kalo itu bukan pake helper url.. mending langsung aja diganti route-nya gan.. udah tau tentang routing di CI?

    23. Apr 21st

      @sobat: versi CInya yang ke berapa?

    24. May 1st

      thx infonya.. tp itu kok saya buat css externalnya kok jadi ga bisa yaa ?

    25. May 18th

      @wildan: harus memakai absolute path, so memakai “base_url(). [path CSS]“

    26. cecep juga
      May 25th

      sbnernya dah ada tutorial lengkap nya di sini cep..

      http://codeigniter.com/wiki/mod_rewrite/

      nice share..

    27. cecepjuga
      May 25th

      sbnernya dah ada tutorialnya di sini cep

      http://codeigniter.com/wiki/mod_rewrite/

      nice share cep.

    28. May 30th

      masih gak keluar css-nya kang
      coba cek

      <?php echo '’; ?>

      udah pake itu juga gak keluar css-nya kenapa yah?

    29. May 30th

      ~~komen yang atas hapus aja kang~~~~ ternyata udah bisa, kalo base_url() sama site_url() itu sama apa beda??

    30. Jun 19th

      @cecep juga: sip, thx 4 shared :)

    31. Jun 19th

      @refi: sama aja ref.. base_url() ekivalen sama site_url()

    32. Jul 29th

      iya nih mas, sama muncul error 500, setelah ada .htaccess nya. saya pakai CI versi 2.0.2

    33. iruru
      Aug 2nd

      Masih error kk… kasusnya sama ky ogy…

      .htaccess nya aku taro di “www/coba_ci/”

      aku pk wampp dan CI 2.0.1

      tolong penjelasannya dong kakak2 semua… :(

    34. mirza
      Aug 7th

      Hade Kang… it works :)

      tpi jadi ga bisa ngambil public file (Js,CSS) :(

      ada solusi ??

    35. Aug 26th

      Masih error kk… kasusnya sama ky ogy…

      .htaccess nya aku taro di “www/coba_ci/”

      aku pk wampp dan CI 2.0.1

      tolong penjelasannya dong kakak2 semua…

      @iruru: klo uri_protocol nya diganti AUTO biisa ga??

    36. Aug 26th

      Hade Kang… it works

      tpi jadi ga bisa ngambil public file (Js,CSS)

      ada solusi ??

      @mirza: Bisa kang, tambahin ini:
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d

    37. meisel
      Sep 24th
    38. cuanq gigabyte
      Sep 25th

      trims infonya mas…

      terbantu banget deh solusinya…

      makasi banyak ya…

      :D

    39. ihsan maulana
      Dec 1st

      mas, msih newbie nih anee, mksd.a file .htaccess di simpan di webroot/base_url itu gmna yah ?di taro di dalam folder application gtu ?sy gunain CI 1.7 …
      tolong bntu,..
      krim ke email yah coment buat bntu sya.a,..
      trimms

    40. cikal
      Dec 22nd

      An Error Was Encountered
      Unable to locate the model you have specified: buku_tamu

      error ini gan?

    41. Jan 10th

      thx gan, di coba dulu yah..? ^^

    42. Fahrul
      Apr 22nd

      makasi …salam kenal di coba dulu artikelnya bagus….

  • Leave a Reply

    Let us know what you thought.

  • Name(required):

    Email(required):

    Website:

    Message:

    Spam Protection by WP-SpamFree