我试图设置一个caching控制标题,当一个浏览器请求以下url:
www.example.com/php/getData.php?exampleField=exampleValue
即使getData.php是一个dynamic页面,当参数exampleField等于exampleValue ,响应也不会改变。 因此,浏览器没有理由不caching这个结果。 我的问题是如何在.htaccess文件中写入一个FilesMatch规则来匹配这个,我尝试了以下没有运气:
<FilesMatch "php/getData.php\?exampleField=(exampleValue1|exampleValue2)$"> Header set Cache-Control "max-age=3024000, must-revalidate" </FilesMatch>
GET参数不是文件名的一部分,所以<FilesMatch>将不匹配它们。
鉴于你正在提供一个PHP文件,你有没有考虑简单地在那里添加caching控制头?
<?php /* ... */ if ( @isset( $_GET['exampleField'] ) && $_GET['exampleField'] == 'exampleValue' ) { header('Cache-Control "max-age=3024000, must-revalidate"'); } /* ... */ ?>