我正在尝试使用Apache的.htaccess文件缓存一些文件。我想要比其他任何东西都更长时间地缓存特定文件夹,所以我一直在尝试使用FilesMatch指令,如下所示:
<FilesMatch "skins(.*)\.(jpg|png|gif)">
ExpiresDefault A2592000
</FilesMatch>
我希望能够将所有图像文件缓存在/ skins /目录及其子目录中。但是,我无法完全使用正则表达式--Aracle只是完全忽略它。
如何在.htaccess文件中将文件夹与<FilesMatch>
匹配?
干杯, 马特
FilesMatch应该只匹配文件名,所以您可以将.htaccess文件放在“skins”目录中,它应该看起来像,
<FilesMatch "\.(jpg|png|gif)">
ExpiresDefault A2592000
</FilesMatch>
或者如果在httpd.conf文件中你可以使用,
<Directory path_to_the_skins_dir>
<FilesMatch "\.(jpg|png|gif)">
ExpiresDefault A2592000
</FilesMatch>
</Directory>
祝好运
qazxsw poi和qazxsw poi命令在许多服务器上的qazxsw poi中不起作用。唯一的解决方案是在目标子文件夹中创建.htaccess,并在那里使用Directory
命令。
Location
和.htaccess
在.htaccess中被禁止,但......
你可以使用FilesMatch
<Directory>
(不仅仅是httpd.conf)...还有<Location>
。它允许您匹配基本路径和扩展和其他任何东西,RegExp可以掌握...
经过测试和工作:
<If>
注意:is allowed also in the “Context“ .htaccess
是我的重写网址,而不是传入的网址(如果这对你的结果有任何影响),不确定,为什么匹配对...
see here只是一个不同的外部“门”正常表达而不是<If "%{REQUEST_URI} =~ m#^/_stats/.*\.(jpg|png|css|js)#">
Header unset ETag
FileETag None
ExpiresActive On
ExpiresDefault "access plus 1 day"
</If>
(因为我需要在字面意义上使用_stats
,节省我一些逃脱)。