×

Cara Menghilangkan .php dari URL, Panduan Praktis Pakai .htaccess

URL bersih tanpa .php bukan sekadar tren estetika. Ini soal pengalaman pengguna, kredibilitas website, dan sinyal yang kamu kirimkan ke mesin pencari. Dengan beberapa baris kode di .htaccess, kamu bisa membuat perubahan nyata — tanpa harus menyentuh struktur file atau database.
Cara Menghilangkan .php dari URL, Panduan Praktis Pakai .htaccess
Dalam Artikel Ini

Dalam Artikel Ini

Cara menghilangkan .php dari URL cukup dengan menambahkan beberapa baris kode RewriteRule di file .htaccess pada server Apache. Teknik ini mengubah URL seperti domain.com/tentang.php menjadi domain.com/tentang tanpa memindahkan file apapun. Prosesnya berlangsung di sisi server, sehingga pengunjung maupun mesin pencari melihat URL yang bersih dan rapi.

Pernah lihat URL website yang masih punya ekor .php di belakangnya? Rasanya seperti melihat kabel listrik yang tidak tersembunyi di balik tembok. Secara teknis tidak masalah, tapi secara estetika — dan SEO — ada harga yang harus kamu bayar.

URL bersih bukan sekadar soal tampilan. Google menyukai struktur URL yang sederhana dan mudah diprediksi. Selain itu, URL tanpa ekstensi terasa lebih profesional di mata pengguna. Bayangkan kamu menerima kartu nama seseorang, lalu di bawah nama ada tulisan kecil: “dibuat pakai Microsoft Word 2010.” Tidak ada yang salah, tapi informasi itu tidak perlu ada di sana.

Digitalisasi Alifbata

Mari kita selesaikan ini dengan cara yang tepat.

Kenapa .php di URL Itu Masalah?

Sebelum masuk ke teknis, pahami dulu kenapa ini penting.

Soal SEO dan Persepsi Pengguna

Mesin pencari tidak secara eksplisit menghukum URL dengan .php. Akan tetapi, URL bersih memberikan sinyal yang lebih kuat soal kerapian struktur situs. Google’s John Mueller pernah menyebut bahwa URL yang mudah dibaca manusia cenderung mendapat CTR lebih tinggi di halaman hasil pencarian.

Selain itu, URL dengan ekstensi membocorkan teknologi yang kamu pakai. Bagi sebagian besar pengguna biasa, itu tidak berarti apa-apa. Namun bagi orang dengan niat buruk, ekstensi .php bisa jadi petunjuk awal untuk mencoba eksploitasi tertentu. Menghilangkannya adalah lapisan keamanan paling minimal, tapi tetap berkontribusi.

Masalah Duplikat Konten

Bayangkan satu halaman bisa diakses melalui dua URL berbeda:

  • domain.com/tentang
  • domain.com/tentang.php

Jika keduanya aktif dan bisa diakses, mesin pencari bisa menganggapnya sebagai dua halaman berbeda dengan konten identik. Akibatnya, skor SEO kamu terbagi (istilah teknisnya: link juice splitting). Ini bukan sesuatu yang mau kamu biarkan hidup di website kamu.

Cara Menghilangkan .php Menggunakan .htaccess

File .htaccess adalah konfigurasi server level direktori untuk Apache. Kamu bisa membayangkannya sebagai “peraturan lokal” yang berlaku khusus untuk folder tempat file itu berada. Untuk memahami lebih jauh soal kekuatan file ini, kamu bisa baca panduan lengkap .htaccess untuk Technical SEO yang membahasnya secara komprehensif.

Langkah 1: Buka atau Buat File .htaccess

File .htaccess biasanya ada di root direktori website kamu — folder yang sama tempat index.php berada. Kamu bisa mengaksesnya melalui File Manager di cPanel, atau lewat FTP client seperti FileZilla.

Kalau belum ada, buat file baru dengan nama persis .htaccess (titik di depan itu bagian dari namanya, bukan typo).

Perhatian penting: Sebelum mengedit, unduh dulu salinan backup. Satu kesalahan kecil di .htaccess bisa membuat seluruh website tidak bisa diakses — dan itu pengalaman yang tidak menyenangkan.

Langkah 2: Tambahkan Kode RewriteRule

Buka file .htaccess, lalu tambahkan kode berikut:

Options -Indexes
RewriteEngine On

# Hilangkan ekstensi .php dari URL
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Simpan, lalu coba akses domain.com/halaman-kamu tanpa .php. Kalau berhasil, halaman tetap muncul seperti biasa.

Langkah 3: Tambahkan Redirect Permanen (301)

Menghilangkan .php dari URL saja belum cukup. Kamu juga perlu memastikan URL lama dengan .php melakukan redirect ke versi bersihnya. Ini penting untuk menghindari duplikat konten yang sudah dibahas tadi.

Tambahkan baris berikut tepat setelah kode sebelumnya:

# Redirect URL .php lama ke URL bersih
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [R=301,L]

Dengan kombinasi dua blok ini, kamu mendapatkan:

  1. URL bersih yang berfungsi penuh
  2. Redirect 301 dari URL lama ke URL baru
  3. Tidak ada duplikat konten

Kode Lengkap .htaccess (Siap Pakai)

Kalau mau langsung copy-paste, ini versi lengkapnya:

Options -Indexes
RewriteEngine On

# Redirect .php ke URL bersih (301 Permanent)
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [R=301,L]

# Akses file tanpa ekstensi .php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Urutan ini penting. Blok redirect harus lebih dulu dari blok rewrite, supaya tidak terjadi redirect loop.

Memahami Kodenya (Biar Tidak Sekadar Copy-Paste)

Banyak tutorial hanya memberikan kode tanpa penjelasan. Padahal memahami kodenya sendiri jauh lebih berguna jangka panjang — terutama kalau suatu saat ada error.

RewriteEngine On

Baris ini mengaktifkan modul mod_rewrite di Apache. Tanpa baris ini, semua aturan rewrite di bawahnya tidak berjalan. Pastikan server kamu mengaktifkan mod_rewrite — hampir semua hosting shared modern sudah mengaktifkannya secara default.

RewriteCond

RewriteCond adalah kondisi yang harus terpenuhi sebelum aturan rewrite berlaku. Dua kondisi !-d dan !-f artinya: “jalankan aturan ini hanya jika yang diminta bukan direktori yang ada (!-d) dan bukan file yang sudah ada (!-f).”

Kondisi ini mencegah konflik dengan file atau folder nyata di server kamu.

RewriteRule dan Flag [R=301,L]

R=301 memberitahu browser bahwa ini redirect permanen. Mesin pencari memahami redirect 301 sebagai sinyal untuk memindahkan semua “nilai” dari URL lama ke URL baru. Berbeda dengan R=302 yang bersifat sementara dan tidak memindahkan nilai SEO.

Flag L artinya “Last” — hentikan pemrosesan aturan lain setelah aturan ini terpenuhi.

Hal yang Perlu Dicek Setelah Implementasi

Setelah menyimpan .htaccess, lakukan beberapa pengecekan ini:

Tes Fungsionalitas Dasar

Buka browser dan akses beberapa URL berikut:

  • domain.com/halaman-tanpa-php → harus tampil normal
  • domain.com/halaman.php → harus redirect ke domain.com/halaman
  • Halaman yang tidak ada → harus menampilkan 404, bukan error server

Kalau salah satu tidak berjalan sesuai harapan, ada kemungkinan konflik dengan aturan lain di .htaccess kamu.

Cek Status Redirect dengan Tools

Gunakan tools seperti Redirect Checker atau ekstensi browser Redirect Path untuk memverifikasi bahwa redirect 301 berjalan dengan benar. Pastikan tidak ada redirect chain yang panjang (misal: .php → versi bersih → HTTPS → www), karena setiap lompatan tambahan memperlambat loading.

Perbarui Sitemap dan Internal Link

Setelah redirect aktif, perbarui sitemap XML kamu agar hanya berisi URL versi bersih. Selain itu, cek semua internal link di konten dan navigasi — ganti yang masih menggunakan .php ke format baru. Masalah seperti halaman tidak tersedia seringkali bermula dari internal link yang tidak konsisten setelah perubahan URL struktur.

Submit Ulang ke Google Search Console

Masuk ke Google Search Console, buka menu URL Inspection, lalu minta Google untuk crawl ulang beberapa halaman penting. Kalau kamu punya property lama yang menggunakan URL .php, pertimbangkan untuk mengirimkan sitemap baru agar Google lebih cepat memperbarui indeksnya.

Potensi Masalah dan Solusinya

Error 500 Internal Server Error

Ini biasanya terjadi karena kesalahan sintaks di .htaccess. Solusinya: periksa ulang kode baris per baris. Perhatikan spasi, tanda kutip, dan karakter khusus. Satu karakter salah sudah cukup untuk membuat server menolak seluruh file konfigurasi.

Redirect Loop

Kalau browser menampilkan pesan “too many redirects,” kemungkinan ada konflik antara aturan redirect .php kamu dengan aturan lain — misalnya redirect HTTP ke HTTPS atau non-www ke www. Solusinya: atur urutan aturan dengan cermat, dan tambahkan kondisi tambahan untuk menghindari overlap.

Contoh: jika kamu juga punya redirect HTTPS, letakkan aturan HTTPS redirect paling atas, baru diikuti aturan .php.

Konflik dengan Framework atau CMS

Kalau kamu menggunakan WordPress, Laravel, atau CodeIgniter, mereka biasanya sudah punya .htaccess sendiri. Jangan timpa seluruh file — tambahkan kode di bagian yang tepat. Untuk WordPress, tambahkan kode sebelum blok # BEGIN WordPress.

Untuk framework PHP seperti Laravel, mereka menggunakan sistem routing sendiri. Kamu mungkin tidak perlu teknik ini sama sekali karena URL bersih sudah ditangani oleh public/index.php.

Alternatif Cara Menghilangkan .php: Nginx dan Hosting Modern

Teknik .htaccess hanya berlaku untuk server Apache. Kalau kamu menggunakan Nginx, konfigurasi dilakukan di file nginx.conf atau file konfigurasi virtual host.

Contoh konfigurasi Nginx untuk efek serupa:

location / {
    try_files $uri $uri/ $uri.php?$query_string;
}

Untuk hosting modern berbasis cloud atau layanan seperti Vercel dan Netlify, URL rewriting biasanya dikonfigurasi melalui file _redirects atau vercel.json. Pendekatan berbeda, tapi tujuan sama.

Kalau kamu mempertimbangkan migrasi atau pengembangan website yang lebih serius dengan arsitektur URL yang terencana sejak awal, eksplorasi lebih lanjut di halaman layanan web development bisa jadi langkah yang tepat.

Kesimpulan Cara Menghilangkan .php

URL bersih tanpa .php bukan sekadar tren estetika. Ini soal pengalaman pengguna, kredibilitas website, dan sinyal yang kamu kirimkan ke mesin pencari. Dengan beberapa baris kode di .htaccess, kamu bisa membuat perubahan nyata — tanpa harus menyentuh struktur file atau database.

Yang paling penting: lakukan dengan benar sejak awal. Backup dulu, implementasi, tes fungsionalitas, perbarui sitemap, lalu beri waktu Google untuk mengindeks ulang. Prosesnya memang tidak instan, tapi hasilnya terasa untuk jangka panjang.

Kalau kamu baru pertama kali bermain dengan .htaccess, anggap ini latihan pertama yang bagus. File kecil ini menyimpan kekuatan luar biasa untuk mengatur bagaimana server kamu berperilaku — cara menghilangkan .php hanyalah satu dari sekian banyak hal yang bisa kamu optimalkan melaluinya.

Mulai dari yang kecil, terapkan dengan teliti, dan rasakan perbedaannya.


Ingin website kamu tidak hanya punya URL bersih, tapi juga tampil di halaman pertama Google secara konsisten? Tim kami di alifbata.digital/layanan/seo siap membantu kamu menyusun strategi SEO yang terstruktur — mulai dari technical audit, optimasi on-page, hingga link building yang relevan untuk pasar Indonesia.