Remove index.php from permalink in WordPress

Share on facebook
Facebook
Share on twitter
Twitter
Share on pinterest
Pinterest
Share on tumblr
Tumblr
Share on reddit
Reddit
Share on linkedin
LinkedIn
Share on telegram
Telegram
Share on whatsapp
WhatsApp

Setelah migrasi site yang berbasis WordPress ke server lain, yang tidak memiliki pengaturan yang sama dengan yang sebelumnya, ada sebuah kemungkinan pada “index.php” dalam url akan ditambahkan. Dan ini akan menimpulkan “404” keterangan halaman yang telah hilang/ dihapus, disisi lain dengan penambahan “index.php” pada URL terlihat kurang menarik seperti pada umumnya yang telah kita jumpai. Memang hal semacam ini terkadang dijumpai karena faktor pengaturan baik pada sisi website dan server yang sedang digunakan.

Berikut beberapa cara untuk menghilangkan url yang masih menyertakan “index.php” dalam pengaturan link pada post sebuah blog/ site. Hal pertama yang akan dilakukan adalah memasukkan pengaturan Permalinks dan memeriksa opsi yang diinginkan untuk Permalinks yang dalam kasus ini ini adalah “Nama Pos” dan menyimpan pengaturan ke dalam database. Dalam beberapa kasus serupa pada proses impor database ke lingkungan host/ server yang baru bisa jadi akan tidak menemukan masalah dan berhasil. Namun apabila sebaliknya mungkin cara-cara berikut ini bisa diterapkan untuk mengatur URL agar terlihat lebih baik “ramah” tanpa menyertakan “index.php” pada alamat post atau halaman nantinya:

  1. Cari tahu apakah “mod_rewrite” sudah diaktifkan di server Anda
    Pada umumnya untuk pengaturan ini terutama untuk server/ host yang disediakan oleh pihak penyedia sudah diaktifkan. Namun apabila belum, Anda bisa menggunakan dengan cara membuat file info dan memeriksa sendiri dengan membuat file “index.php atau info.php” yang didalamnya isikan script seperti ini: dan buka pada browser, makan akan muncul keterangan informasi modul, extensi,dll pada server Anda.
  2. Setting Permalink Structure
    Dashboard > Settings > Permalinks dan Pilih “Custom Structure” dan masukkan field ini: /%postname%/ lalu click on Save Changes button.
    Pada pengaturan menu Permalinks sudah disediakan beberapa pilihan didalamnya, Anda tinggal memilih dan mengaturnya sesuai dengan keinginan. Semua pengaturan dari menu Permalinks ini kan membuat file .htaccess pada blog/ website Anda.
  3. Manual Edit atau membuat file .htaccess sendiri dengan field seperti dibawah ini sebagai contoh:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Taruh file .htacces tadi pada lokasi root website yang ada sekarang. Dan hasilnya seharusnya dengan settingan .htacces tersebut menghapus “index.php” dari struktur URL yang ada. Untuk mempelajari lebih lanjut tentang hal tersebut bisa kunjungi url berikut yang disediakan oleh WordPress: WordPress Codex page

Masalah Tambahan lainya:

Terkadang langkah-langkah yang dijelaskan di atas tidak memberikan hasil apa pun dalam menghapus “index.php” dari struktur permalink Anda, dan inilah yang dapat menyebabkan masalah. Pada beberapa server dengan keamanan ketat “mod_security” memblokir pengaturan Anda sehingga “index.php” masih tetap dalam struktur URL. Coba tambahkan potongan kode ini dalam file .htaccess Anda di atas aturan yang dijelaskan pada langkah 3 posting ini:

<IfModule mod_security.c>
SecFilterEngine Off
</IfModule>

Satu hal lagi yang perlu diperiksa adalah file konfigurasi untuk Apache yang juga dapat mengganti arahan .htaccess Anda. Cari file “/etc/apache2/apache2.conf” default Ubuntu dan ubah entri untuk / dan / var / www dari AllowOverride None ke AllowOverride All. Kemudian restart server Apache dan mudah-mudahan itu bisa menyelesaikan masalah juga.

Scroll to Top