Menghilangkan index.php menggunakan HTACCESS

Menghilangkan index.php merupakan suatu tuntutan dalam SEO. Kali ini akan dikupas bagaimana penangananya.
1611  
       

Menghilangkan index.php merupakan suatu tuntutan dalam SEO yaitu bagaimana cara membuat url yang rapih dan SEO friendly. Sebagai seorang programmer tentu hal ini akan sangat sulit apabila terjadi kesalahan. Butuh effort yang cukup lama dalam mengatasi masalah ini. Tapi untuk seorang Digital Marketer, tentu saja ini hal yang basic yang harus ditempuh untuk menjalankan strateginya.

Gejala

Beberapa framework dan CMS memang sudah ada standarnya. Namun, bagaimana ternyata jika error. Ada banyak error yang ditimbulkan oleh masalah perubahan

.htaccess

ini. Adapun gejala error tersebut yang paling sering diantaranya.

  • No input file specified.
  • Membuka halaman apa saja yang keluar homepage atau 404 notfound.
  • Ketika passing parameter get di url muncul halaman yang tidak diinginkan
  • Mod Rewrite Apache belum di install
  • Menggunakan varian NGINX

Solusi

Solusi yang paling mendasar yaitu periksa dulu PHP version nya. Untuk memeriksa nya cukup mudah. Bisa langsung tanyakan melalui tiket support ke penyedia hosting anda atau kontak admin. Bisa juga dengan mengecek sendiri dengan function

phpinfo()

.

Cara PHPINFO()

untuk menggunakan php info, pertama buat file dulu namanya

phpinfo.php

atau apa saja yang penting extensionnya php. Kemudian masukan kode dibawah ini.

<?php
php_info(); 

kemudian simpan dan coba eksekusi di browser. Kurang lebih hasilnya akan seperti ini.

PHP INFO 5.6.24

PHP INFO 5.6.24

 
Jika telah muncul, coba cek mod_rewrite di apache nya sudah terinstall apa belum. Jika sudah langsung lanjut ke perubahan .htaccess.

Solusi

Untuk php lebih dari 5.2.6 gunakan kode ini.

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

untuk php versi 5.2.6 ke bawah cobalah kode ini:

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

Pertanyaan yang sering ditanyakan

Memang terdengar aneh ya, tapi ini sering terjadi terkait masalah menghilangkan index.php menggunakan HTACCESS. Berikut ini adalah beberapa pertanyaan yang sering muncul.

  • Bisa tidak sih saya menggunakan htaccess untuk menghilangkan index.php di nginx. Ini jelas sekali jawabanya tidak bisa, anda harus merubah file config nginx nya supaya dapat menghilangkan index.php
  • Apa perbedaan HTACCESS untuk versi php 5.2.6? Ini sangat menarik, perbedaanya hanya pada penambahan syntax tanda tanya pada baris terakhir setelah index.php. Mari kita lihat baris terakhir RewriteRule ^(.*)$ /index.php/$1 [L] dengan RewriteRule ^(.*)$ /index.php?/$1 [L] ternyata tidaklah sulit bukan
  • Apakah di Nginx sudah ada mod_rewrite? Kalau saya jawab sih, tidak ada. Tapi nginx itu sudah secara default bisa mod_rewrite dengan standar Nginx.
  • Bisa ga sih ngedit htaccess pakai notepad++? Bisa, cukup drag and drop file .htaccess ke notepad++ nya nanti langsung bisa diedit
  • Ternyata susah membuat file .htaccess di windows? Iya memang demikian, cara termudahnya adalah googling ke github atau download script yang sudah ada dari filehosting. Download kemudian edit dan upload lagi.

Demikian. Semoga dapat membantu.