mod_rewrite macht nix anderes, als dem Abruf vom Browser umzuschreiben.
Du kannst also eine Datei im Browser mit index3.html aufrufen, während mod_rewrite
das dann intern umschreibt zu index.php?page_id=3
Das macht man zum einen aus Sicherheitsgründen, um vor dem User PHP zu verstecken und zum anderen,um Suchmaschinen zu ermöglichen die Seite zu indizieren, da sie mit dem QueryString (also alles,was hinter einem fragezeichen kommt) nix anfangen kann.