Браузер будет кэшировать или не кэшировать файлы, которые ты укажешь в заголовках. Укажешь ты их с помощью php или htaccess - неважно. Важно их задать наиболее удобным для тебя образом исходя из поставленной задачи.
Нужно динамическое изменения сроков кэширования и типов файлов?
Используй отправку заголовков из php с помощью функции headers();.
Нужны статические правила, изменение которых будет редким?
Используй правила для htaccess:
habrahabr.ru/sandbox/55709
Вот так можем проверить заголовки
highloadtools.com/cachecontrol