Lompat ke konten
Server & .htaccess

File .htaccess Default WordPress: Kode dan Cara Memulihkan

Kode .htaccess default yang ditulis WordPress untuk permalink, fungsi tiap barisnya, dan cara memulihkan file saat artikel 404 tapi halaman depan tetap muncul.

Dipublikasikan

File .htaccess default WordPress adalah blok RewriteEngine singkat yang ditulis software ini ke .htaccess di root situs Anda, agar permalink seperti /2026/10/post-name/ berfungsi dan tidak menghasilkan 404. Bentuknya seperti ini:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Aturan ini berasal dari kode yang digunakan WordPress untuk menghasilkan blok tersebut, dan sesuai dengan panduan .htaccess milik WordPress. WordPress juga menulis tiga baris komentar tepat setelah # BEGIN WordPress, yang memperingatkan bahwa perubahan di antara marker akan ditimpa. Baris ini tidak mengubah cara kerja aturan.

Pada instalasi di subfolder, WordPress menaruh path subfolder di RewriteBase dan di aturan terakhir, misalnya RewriteBase /blog/ dan RewriteRule . /blog/index.php [L]. Jaringan multisite memakai blok yang berbeda, dan WordPress tidak menulis file ini secara otomatis untuk mereka.

Poin penting

  • WordPress menghasilkan blok ini di Apache dan LiteSpeed saat punya izin tulis dan permalink cantik aktif. Membuka Pengaturan > Permalink sudah cukup.
  • Jika file hilang atau rusak, permalink menghasilkan 404 sementara halaman depan tetap dimuat, karena halaman depan tidak membutuhkan aturan rewrite.
  • Taruh apa pun yang Anda atau plugin tambahkan di atas # BEGIN WordPress, jangan di dalam marker. WordPress mengganti semua yang ada di antara keduanya saat memperbarui file.
Output terminal dari Apache: tanpa file .htaccess, homepage mengembalikan 200 dan URL post mengembalikan 404; dengan blok default, keduanya mengembalikan 200
Respons asli dari Apache 2.4.58. Tanpa file itu, homepage terbuka dan URL post mengembalikan 404. Dengan blok default, keduanya mengembalikan 200. Sebuah index.php uji satu baris menggantikan WordPress.

Fungsi tiap baris

RewriteEngine On mengaktifkan modul mod_rewrite Apache untuk direktori ini; tanpa baris ini aturan rewrite di bawahnya tidak berbuat apa-apa.

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] membiarkan URL apa adanya (itulah arti -) dan menyalin header Authorization dari permintaan ke variabel server. WordPress membaca variabel itu untuk mengambil nama pengguna dan kata sandi yang dikirim lewat header, seperti Kata Sandi Aplikasi.

RewriteBase / menetapkan awalan path yang dipakai Apache untuk URL yang ditulis ulang. WordPress menyesuaikannya dengan lokasi situs, jadi instalasi di subfolder mendapat RewriteBase /blog/.

RewriteRule ^index\.php$ - [L] adalah pengaman: jika permintaan sudah berupa index.php, proses rewrite berhenti dan permintaan lewat tanpa diubah.

Dua baris RewriteCond adalah logika utamanya. %{REQUEST_FILENAME} !-f dan !-d bertanya “apakah permintaan ini TIDAK cocok dengan file nyata, dan TIDAK cocok dengan direktori nyata?” Keduanya harus benar agar aturan terakhir berjalan, sehingga gambar, file CSS, atau PDF yang diunggah langsung disajikan dan tidak pernah menyentuh routing WordPress.

RewriteRule . /index.php [L] adalah yang membuat permalink berfungsi. Semua yang lolos dari dua kondisi itu dikirim ke index.php, lalu WordPress menentukan artikel, halaman, atau arsip mana yang dimaksud URL tersebut.

Kapan WordPress membuat ulang file ini, dan kapan tidak

WordPress mem-flush aturan rewrite-nya setiap kali layar Pengaturan > Permalink dimuat, jadi membukanya sudah cukup dan Anda tidak perlu mengklik Simpan Perubahan. Jika .htaccess hilang, WordPress membuatnya selama folder bisa ditulis dan permalink cantik aktif. Jika file ada dan bisa ditulis, WordPress mengganti blok di antara marker.

Itu tidak menyelesaikan masalah dalam kasus berikut:

  • File atau foldernya tidak bisa ditulis oleh pengguna yang menjalankan PHP. Layar menampilkan pesan kesalahan bahwa file .htaccess tidak bisa ditulis, beserta aturan yang harus ditempel. Di beberapa host, PHP berjalan sebagai pengguna sistem yang berbeda dari pemilik file yang diunggah lewat FTP, jadi izin yang terlihat benar di klien FTP tetap bisa memblokir WordPress.
  • Anda memakai nginx. Panduan nginx WordPress menyebutkan bahwa nginx tidak memiliki file konfigurasi tingkat direktori seperti .htaccess, dan WordPress tidak bisa mengubah konfigurasi server. Routing yang setara adalah direktif try_files dalam konfigurasi server, yang harus diedit administrator.
  • AllowOverride disetel ke None untuk direktori situs Anda dalam konfigurasi utama Apache. Dokumentasi Apache menyatakan: “This means .htaccess files are completely ignored unless you explicitly enable them for a directory.” Artinya, file .htaccess diabaikan sepenuhnya kecuali Anda secara eksplisit mengaktifkannya untuk suatu direktori. WordPress bisa menulis file yang sempurna dan file itu tetap tidak berpengaruh. Aturan rewrite membutuhkan AllowOverride FileInfo (atau All), dan mungkin host Anda yang harus mengubahnya.
  • Permalink Anda disetel ke Polos. URL polos tidak membutuhkan aturan rewrite, jadi WordPress tidak membuat file untuknya.

Cara memulihkannya secara manual

Jika artikel dan halaman 404 sementara halaman depan tetap berfungsi, .htaccess yang hilang atau rusak adalah hal pertama yang perlu diperiksa. Perbaiki dalam dua langkah.

1. Coba dulu perbaikan satu klik. Buka Pengaturan > Permalink di wp-admin, lalu klik Simpan Perubahan tanpa mengubah apa pun. Jika WordPress bisa menulis file, ini akan membuatnya ulang. Jika tidak bisa, layar menampilkan pesan kesalahan dan aturan yang Anda perlukan.

2. Jika belum berhasil, buat file secara manual. Hubungkan lewat FTP/SFTP atau pengelola file host Anda dan buka folder root situs, biasanya folder yang berisi wp-admin. Periksa apakah .htaccess ada. Ini adalah dotfile, jadi beberapa pengelola file menyembunyikannya secara default; aktifkan “tampilkan file tersembunyi”.

  • Jika hilang, buat file baru dengan nama persis .htaccess (tanpa .txt, tanpa apa pun sebelum titik).
  • Tempel aturan yang ditampilkan WordPress, atau blok default di bagian atas panduan ini. Pada instalasi di subfolder, sesuaikan RewriteBase dan aturan terakhir.
  • Simpan, lalu muat ulang permalink artikel untuk memastikan berfungsi.

Jika masih 404, .htaccess mungkin diabaikan. Tanyakan AllowOverride kepada host Anda, karena Apache mengabaikan file yang benar saat fitur itu dimatikan.

Aturan Anda sendiri dan blok WordPress

Plugin atau pengeditan manual bisa menambahkan aturan sendiri, seperti redirect, perlindungan hotlink, atau header cache. Simpan aturan itu di luar blok WordPress, dan di atasnya agar berjalan sebelum aturan umum WordPress:

# Rules you or a plugin added: ABOVE the WordPress markers
<FilesMatch "\.(jpg|jpeg|png|gif)$">
    # example: hotlink protection, caching rules, etc.
</FilesMatch>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Apa pun yang ditempatkan di antara # BEGIN WordPress dan # END WordPress hilang saat WordPress berikutnya memperbarui file, dan memuat layar Permalink sudah cukup untuk memicunya. Baris sebelum dan sesudah marker tetap disimpan. Khusus untuk redirect, lihat aturan redirect .htaccess WordPress yang benar untuk tempat seharusnya dan cara menghindari loop.

500 Internal Server Error tepat setelah mengedit file menunjuk pada apa yang baru saja Anda ubah. Dokumentasi Apache menyatakan log kesalahan kemungkinan besar akan menyebut direktif yang tidak diizinkan atau kesalahan sintaks. Aturan yang disalin dari tutorial lama bisa menyebabkan ini: Order adalah perintah yang tidak valid di Apache 2.4 kecuali mod_access_compat dimuat. Batalkan pengeditan untuk memulihkan situs, lalu baca log kesalahan.

Di luar blok default

Blok default hanya menangani routing permalink dan header Authorization. Untuk memperketat akses ke file sensitif, misalnya memblokir eksekusi PHP di /uploads atau menolak permintaan langsung ke wp-config.php, lihat aturan keamanan .htaccess WordPress yang benar-benar membantu. Jika permalink menghasilkan 404 karena alasan lain, seperti struktur permalink yang salah, lapisan cache yang menyajikan aturan lama, atau konflik subdirektori multisite, permalink WordPress tidak berfungsi membahas penyebab lainnya.

FAQ

Apa itu file .htaccess default WordPress? Ini adalah blok RewriteEngine yang ditulis WordPress di antara # BEGIN WordPress dan # END WordPress dalam file .htaccess di root situs Anda. Blok ini meneruskan header Authorization ke PHP dan mengirim setiap permintaan yang bukan file atau folder nyata ke index.php.

Apa kode .htaccess default WordPress yang tepat? RewriteEngine On, aturan yang meneruskan header Authorization ke PHP, RewriteBase /, aturan lolos untuk index.php, dua kondisi yang memeriksa bahwa permintaan bukan file atau folder nyata, dan aturan terakhir yang mengirim semua sisanya ke index.php. Blok lengkapnya ada di bagian atas panduan ini.

Mengapa semua artikel saya 404 kecuali halaman depan? File .htaccess yang hilang atau rusak di Apache menghasilkan pola ini. Server bisa menemukan halaman depan tanpa aturan rewrite. Setiap permalink lain membutuhkan aturan itu untuk mencapai index.php, jadi tanpa aturan itu Apache mencari file yang tidak ada dan mengembalikan 404.

Apakah WordPress membuat ulang .htaccess secara otomatis? Ya, di Apache atau LiteSpeed dengan mod_rewrite, jika permalink cantik aktif dan WordPress bisa menulis di sana. Membuka Pengaturan > Permalink sudah cukup. File yang hilang membutuhkan folder yang bisa ditulis, dan file yang ada harus bisa ditulis. Jika tidak, layar menampilkan pesan kesalahan, beserta aturan yang harus ditempel secara manual.

Mengapa nginx tidak memiliki file .htaccess WordPress? nginx tidak memiliki file konfigurasi tingkat direktori seperti .htaccess milik Apache. Routing yang sama ditulis sebagai aturan try_files dalam konfigurasi server nginx, yang harus diedit administrator karena WordPress tidak bisa mengubahnya.

Mengapa .htaccess saya rusak setelah menyimpan permalink? Periksa apakah ada aturan kustom yang ditempatkan di dalam marker # BEGIN WordPress dan # END WordPress. WordPress mengganti semua yang ada di antara keduanya saat memperbarui file, jadi aturan itu hilang. Simpan aturan kustom di atas marker.

Sumber


Bangun ulang .htaccess yang bersih dan benar, dengan blok permalink default plus aturan keamanan atau redirect yang benar-benar Anda perlukan, memakai generator .htaccess WordPress gratis.

FAQ

Pertanyaan

Apa itu file .htaccess default WordPress?

Ini adalah blok RewriteEngine yang ditulis WordPress di antara # BEGIN WordPress dan # END WordPress dalam file .htaccess di root situs Anda. Blok ini meneruskan header Authorization ke PHP dan mengirim setiap permintaan yang bukan file atau folder nyata ke index.php.

Apa kode .htaccess default WordPress yang tepat?

RewriteEngine On, aturan yang meneruskan header Authorization ke PHP, RewriteBase /, aturan lolos untuk index.php, dua kondisi yang memeriksa bahwa permintaan bukan file atau folder nyata, dan aturan terakhir yang mengirim semua sisanya ke index.php. Blok lengkapnya ada di bagian atas panduan ini.

Mengapa semua artikel saya 404 kecuali halaman depan?

File .htaccess yang hilang atau rusak di Apache menghasilkan pola ini. Server bisa menemukan halaman depan tanpa aturan rewrite. Setiap permalink lain membutuhkan aturan itu untuk mencapai index.php, jadi tanpa aturan itu Apache mencari file yang tidak ada dan mengembalikan 404.

Apakah WordPress membuat ulang .htaccess secara otomatis?

Ya, di Apache atau LiteSpeed dengan mod_rewrite, jika permalink cantik aktif dan WordPress bisa menulis di sana. Membuka Pengaturan > Permalink sudah cukup. File yang hilang membutuhkan folder yang bisa ditulis, dan file yang ada harus bisa ditulis. Jika tidak, layar menampilkan pesan kesalahan, beserta aturan yang harus ditempel secara manual.

Mengapa nginx tidak memiliki file .htaccess WordPress?

nginx tidak memiliki file konfigurasi tingkat direktori seperti .htaccess milik Apache. Routing yang sama ditulis sebagai aturan try_files dalam konfigurasi server nginx, yang harus diedit administrator karena WordPress tidak bisa mengubahnya.

Mengapa .htaccess saya rusak setelah menyimpan permalink?

Periksa apakah ada aturan kustom yang ditempatkan di dalam marker # BEGIN WordPress dan # END WordPress. WordPress mengganti semua yang ada di antara keduanya saat memperbarui file, jadi aturan itu hilang. Simpan aturan kustom di atas marker.