我的文档根目录中有一个 .htaccess,内容如下:
ExpiresActive On
ExpiresDefault A0
<FilesMatch "\\.(gif|jpe?g|png)$">
ExpiresDefault A86400
</FilesMatch>
但是,对于特定的子目录 /images/avatar,我只希望其期限为 300 秒。因此,我在 /images/avatar 下创建了另一个 .htaccess,内容如下:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A300
</IfModule>
使用上述设置,我无法强制 /images/avatar 下的文件的过期时间为 300 秒。但是,如果我删除根目录中的 .htaccess,则将隐含 300 秒规则。
有啥帮助吗?谢谢
答案1
我怀疑问题在于在 Directory 选项之后应用了 FilesMatch 选项。尝试在头像目录中指定 FilesMatch 指令,如下所示:
<FilesMatch ".">
ExpiresActive On
ExpiresDefault A300
</FilesMatch>
看http://httpd.apache.org/docs/2.0/sections.html这解释了目录选项首先应用,然后应用 FilesMatch 选项。 在您的例子中,您将目录选项的 ExpiresDefault 设置为 A300,然后父 FilesMatch 选项应用于子目录中的任何匹配文件(请记住,设置目录的选项会影响所有子目录)。