The Rekomendasi dari proyek Apache adalah:
Secara umum, Anda hanya boleh menggunakan file .htaccess ketika Anda tidak memiliki akses ke file konfigurasi server utama. ... kesalahpahaman umum adalah bahwa otentikasi pengguna dan arahan mod_rewrite harus masuk .htaccess
file.
Jadi harap atur AllowOverride None
dan semua arahan Anda di httpd.conf utama (dan / atau subbagian yang Anda Include
)
Ketika Apache tidak dikonfigurasi dengan AllowOverride None
Anda sudah terjadi penalti kinerja (kecil), terlepas dari apakah atau tidak ada .htaccess
file yang digunakan.
Ini karena untuk setiap dan setiap apache permintaan perlu memeriksa keberadaan .htaccess
file potensial di setiap (sub-) direktori yang mengarah ke sumber daya yang diminta. Misalnya ketika file diminta keluar dari direktori / www / htdocs / example, apache harus mencari file berikut:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
Jadi, untuk setiap akses file keluar dari direktori itu, ada 4 akses sistem file tambahan, bahkan jika tidak ada file-file itu ada. (Jika AllowOveride diatur ke /)
Panggilan sistem yang digunakan untuk itu ( man 2 stat
) dengan sendirinya tidak terlalu mahal dan biasanya sistem file cache digunakan daripada polling disk yang sebenarnya, membatasi persyaratan IO yang sebenarnya, tetapi masih bisa bertambah, sebagaimana artikel ini berpendapat.
Ketika satu atau lebih .htaccess
file aktual benar-benar ada, apache masih perlu open
dan membacanya (memicu operasi baca IO lain dan biasanya juga operasi penulisan IO untuk memperbarui atime
atribut sistem file ) dan menguraikannya sebelum logika di dalamnya dapat diterapkan.
Tidak seperti ketika arahan Anda berada di utama httpd.conf
, yang hanya membutuhkan apache untuk menguraikannya sekali, pada saat startup, setiap .htaccess
file perlu ditafsirkan lagi untuk setiap permintaan.
Seberapa mahal, di samping operasi IO, mem-parsing file .htaccess tergantung pada kerumitannya.
Itu akan membutuhkan penentuan tolok ukur yang cermat.