代码之家  ›  专栏  ›  技术社区  ›  BernardA

htacces目标特定文件

  •  2
  • BernardA  · 技术社区  · 6 年前

    这应该是直截了当的,但显然不是。

    文件是 sw.js 并将其放置在 /public_html/ ,这是应该的。

    我试过几种不同的组合 <FilesMatch ??? > 下面,像 "sw\.js$" 没有成功。

    <FilesMatch "^(sw\.js)$">
      FileETag None
      <ifModule mod_headers.c>
        Header unset ETag
        Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
        Header set Pragma "no-cache"
        Header set Expires "Wed, 08 Jan 1975 05:00:00 GMT"
      </ifModule>
    </FilesMatch>
    

    to this ,如果我跑

     `curl -I -L https://www.soeezauto.com/sw.js | grep cache-control` 
    

    我应该收到一张支票 cache-control: no-cache ,但我没有。

    1 回复  |  直到 6 年前
        1
  •  2
  •   anubhava    6 年前

    你的正则表达式在里面 FilesMatch 指令似乎正确。但是请注意,Apache将发送以下标头作为响应:

    Cache-Control: max-age=0, no-cache, no-store, must-revalidate
    

    注意这里混合了大小写标题名 Cache-Control

    你的 grep 命令正在搜索所有小写标题名,即。 cache-control

    你需要使用 -i 格雷普 或搜索完全相同的标题,即。 缓存控制 .

    因此,以下任何一项 格雷普 将工作:

    grep -i 'cache-control'
    

    grep 'Cache-Control'
    

    为了提高效率,请添加 -F 用于固定字符串搜索的选项,因为在中未使用任何正则表达式 格雷普 要制作它的模式:

    grep -iF 'cache-control'