Здравствуйте. Вот на Open Server есть вкладка домены, там можно задать индексную папку, например папку "public".
Не на всех хостингах есть возможность задавать индексную папку :(, как можно это сделать с помощью .htaccess ?
Файлы .htaccess можно разбрасывать по любым папкам. Сработают они в том порядке, в каком встретятся.
К примеру при запросе example.com/shop/toys/cars
Апач проверит есть ли .htaccess в папке /shop, затем есть ли в /shop/toys и так далее. Если конечно первый встреченный htaccess не прервет эту цепочку каким-то правилом.
При этом файлы .htaccess которые лежат в каких-то других папках не будут использованы. То есть если у вас есть какой-то /public/.htaccess но запрос не направлен в папку /public - он не будет задействован.