我正在尝试使用Apache的.htaccess文件缓存一些文件。我想比其他任何东西都更长时间地缓存特定文件夹,所以我一直在尝试使用这样的FilesMatch指令:
<FilesMatch "skins(.*)\.(jpg|png|gif)">
ExpiresDefault A2592000
</FilesMatch>
我希望能够将所有图像文件缓存在/ skins /目录及其子目录中。但是,我无法完全使用正则表达式--Amaase只是完全忽略了它。
如何在.htaccess文件中将文件夹与<FilesMatch>
匹配?
干杯,
马特
答案 0 :(得分:18)
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>
祝你好运
答案 1 :(得分:5)
Directory
和Location
命令无法在许多主机上的 .htaccess
中工作。解决方案可能是在目标子文件夹中创建.htaccess
,并在那里使用 FilesMatch
命令。
答案 2 :(得分:2)
h2=h1.withColumn("rowId", monotonically_increasing_id())
c1=c.withColumn("rowId", monotonically_increasing_id())
c1.join(h2,c1.rowId==h2.rowId,'inner').drop(c1.rowId).drop(h2.rowId).show()
和<Directory>
,但是......
您可以使用<Location>
is allowed also in the “Context“ .htaccess
(不仅仅是httpd.conf)...还有see here。它允许您匹配基本路径和扩展和其他任何东西,RegExp可以掌握......
经过测试和工作:
<If>
备注:强>
<If "%{REQUEST_URI} =~ m#^/_stats/.*\.(jpg|png|css|js)#">
Header unset ETag
FileETag None
ExpiresActive On
ExpiresDefault "access plus 1 day"
</If>
是我的重写网址,而不是传入的网址(如果这会对您的结果造成任何影响),不确定,为什么匹配对此有效...
_stats
只是一个不同的“ gate ”,而不是#
(因为我需要在字面意义上使用/
,救了我一些逃脱的事。)