Да, но это сложно. PHP по умолчанию добавляет несколько заголовков, которые предотвращают кеширование. Вы должны убедиться, что вы удаляете их все. Кроме того, понимает ли ваш PHP-скрипт заголовки If-Modified-Since
и If-None-Match
? Вы вообще генерируете заголовки Last-Modified
и ETag
? Это сложно сделать правильно, и зачем, если на вашем веб-сервере все это встроено?
Я бы сделал это по-другому. Сделайте запрос на core.js
, а не core.php
. Конечно, core.js
не существует, поэтому .htaccess
перехватывает запрос и направляет его на index.php
. Теперь index.php
генерирует необходимый javascript и передает его клиенту. Также создается файл core.js
. Будущие запросы на core.js
будут обрабатываться Apache как обычно для статических файлов, не приближаясь к PHP.
И если вы хотите иметь возможность обновлять javascript, вы можете вместо этого использовать URL-адреса вида last-modified-timestap.core.js
. Изменение метки времени в HTML приведет к созданию нового файла javascript при первом запросе.
Я делаю это для динамически создаваемого CSS (дизайнер может редактировать CSS в панели администрирования, сохраняя значения в базе данных), и это хорошо работает.