web server ชื่อ apache มี configuration หลักอยู่ที่ /etc/apache2/apache2.conf และ /etc/apache2/sites-available/* โดยทั่วไปแล้ว 2 ไดเรกทอรีนั้นจะไม่อนุญาติให้ user เขียนได้ ส่งผลให้ user ต่างๆซึ่งเป็นเจ้าของเว็บไซต์ต่างๆบน server เครื่องเดียวกันไม่สามารถแก้ไข configuration ของ apache สำหรับเว็บไซต์ของแต่ละคนเองได้
อย่างไรก็ดีเราสามารถ config apache จาก configuration หลักให้อนุญาติให้เว็บไซต์ต่างๆสามารถกำหนด configuration เพิ่มเติมสำหรับแต่ละเว็บไซต์เองได้ผ่านไฟล์ .htaccess ซึ่ง scope จะกินไปจาก current directory ลงไปยัง child directory เรื่อยๆ (เว็บไซต์หนึ่งๆสามารถมี .htaccess ได้หลายไฟล์)
สิ่งที่อยู่ใน .htaccess ก็คือ configuration ทั่วไปของ apache นั่นเอง การจะศึกษา .htaccess หากเรียกให้ถูกน่าจะเป็นการศึกษาการปรับแต่ง apache มากกว่า
mod_rewrite เป็นเพียง 1 apache module ยอดนิยม
ปัญหาหนึ่งคือ configuration ที่อยู่ใน .htaccess จะถูกเรียกขึ้นมาอ่านโดย apache ทุกครั้งที่มี http request มาจากผู้เข้าชมเว็บไซต์ทำให้เปลืองทรัพยากรเครื่อง server หากเป็นไปได้ผมจะนำ configuration ทั้งหมดใส่ไว้ใน /etc/apache2/sites-available/* ของเว็บไซต์แต่ละเว็บไซต์ เพราะถ้าอยู่ใน main configuration file แล้วจะถูกอ่านเพียงครั้งเดียวตอน apache restart เป็นการประหยัดทรัพยากรมากกว่า
