Назад | Перейти на главную страницу

.htaccess для соответствия параметризованным URL-адресам

Я пытаюсь установить заголовок управления кешем, когда браузер запрашивает следующий URL-адрес:

www.example.com/php/getData.php?exampleField=exampleValue

Как будто даже если getData.php является динамической страницей, когда параметр exampleField равно exampleValue ответ не меняется. Следовательно, у браузера нет причин не кэшировать этот результат. Мой вопрос: как мне написать FilesMatch правило в файле .htaccess, чтобы соответствовать этому, я безуспешно пробовал следующее:

<FilesMatch "php/getData.php\?exampleField=(exampleValue1|exampleValue2)$">
Header set Cache-Control "max-age=3024000, must-revalidate"
</FilesMatch>

Параметры GET не являются частью имени файла, поэтому <FilesMatch> не будет соответствовать им.

Учитывая, что вы обслуживаете файл PHP, рассматривали ли вы возможность просто добавить туда заголовок управления кешем?

<?php
  /* ... */
  if (
    @isset( $_GET['exampleField'] ) &&
    $_GET['exampleField'] == 'exampleValue'
  ) {
    header('Cache-Control "max-age=3024000, must-revalidate"');
  }
  /* ... */
?>