Mengapa ini berhasil:
RewriteRule (.+)/$ $1
dan pekerjaan ini:
RewriteRule (.+)/$ $1 [L] #bla bla bla
tapi ini tidak berhasil:
RewriteRule (.+)/$ $1 #bla bla bla
Mengapa ini berhasil:
RewriteRule (.+)/$ $1
dan pekerjaan ini:
RewriteRule (.+)/$ $1 [L] #bla bla bla
tapi ini tidak berhasil:
RewriteRule (.+)/$ $1 #bla bla bla
Jawaban:
Aturan terakhir tidak berfungsi karena komentar sebenarnya bukan komentar. Komentar di htaccess harus dimulai dengan a #
(harus di awal baris), dan tidak sembarangan di mana pun.
Dalam kasus kedua, #bla bla bla
diartikan sebagai parameter ke-4 dari RewriteRule
direktif, yang diabaikan begitu saja.
Dalam kasus terakhir, #bla bla bla
ini diinterpretasikan sebagai parameter ke-3, yang mana dalam RewriteRule
kasus ini adalah tujuan dari flag, dan #bla bla bla
bukan merupakan flag yang dimengerti oleh mod_rewrite sehingga Anda mendapatkan kesalahan.
#
harus berada di "awal" baris, baris dapat diawali dengan spasi kosong berapa pun. (Kelebihan) Spasi kosong dalam .htaccess diabaikan, dan dapat "ditaburkan" di mana saja, termasuk di awal baris. Dengan kata lain, #
harus berupa karakter non-spasi pertama dalam satu baris. Dulu saya keliru mengira #
harus karakter 1, di kolom paling kiri!
Format file config Apache ( .htaccess
salah satu contohnya) tidak mendukung komentar sebaris secara teknis, hanya komentar baris penuh (yaitu baris yang diawali dengan a #
).
Baris yang dimulai dengan karakter hash "#" dianggap sebagai komentar, dan diabaikan. Komentar mungkin tidak disertakan pada baris setelah arahan konfigurasi. - Manual resmi Apache 2.4
Namun, yang membingungkan, setiap modul dapat mengurai input untuk arahannya sesuka hati - jadi mod_rewrite
putuskan apa yang harus dilakukan dengan baris apa pun yang dimulai denganRewriteRule
Saya tidak tahu pasti tapi tebakan saya mod_rewrite
adalah mengabaikan semuanya setelah [flags]
, dan #
sebenarnya tidak perlu sama sekali.
Taruhan terbaik, bagaimanapun, adalah untuk selalu menjaga komentar di baris mereka sendiri, karena itu akan berfungsi apa pun arahan Anda berkomentar.