Лучший подход, позволяющий избежать накладных расходов и сложности mod_rewrite, - просто не помещать файлы, которые вы не хотите получать по URL, в корневую папку . Вы можете просто поместить их в другое место и включить их оттуда; простой и (более) безопасный, но по какой-то причине это не является общеизвестным.
Пример структуры может быть
project/
project/root
project/lib
Ваш общедоступный код (например, index.php) будет находиться в проекте / root, и это будет корень сайта. Ваш включенный код будет жить в проекте / lib, его можно легко включить, используя require, include и т. Д.
Нет mod_rewrite. Очень просто.