【问题标题】:Exclude folders from caching从缓存中排除文件夹
【发布时间】:2018-07-03 07:50:42
【问题描述】:

Additional nginx 指令下的 Plesk 中 我添加了以下缓存设置。

location ~* .(jpg|js|css)$ { #shortened
    etag on;
    if_modified_since exact;
    add_header Pragma "public";
    add_header Cache-Control "max-age=31536000, public";
}

但是在 wp-admin 中,我重写了这些类型文件的 url。
如何从上面的块中排除 wp-admin/*wp-includes/*

背景知识,我在子文件夹中运行 WordPress 多站点。所以
maildomain.com/wp-admin/stylesheet.css实际上位于
maildomain.com/wp/wp-admin/stylesheet.css

【问题讨论】:

    标签: wordpress nginx plesk


    【解决方案1】:

    您可以尝试在缓存指令之前尝试使用位置参数,例如:

    location ^~ /wp-admin/ {
    }
    
    location ~* .(jpg|js|css)$ { #shortened
    etag on;
    if_modified_since exact;
    add_header Pragma "public";
    add_header Cache-Control "max-age=31536000, public";
    }
    

    UPD。是的,在我的测试实验室检查它并得到 403 错误。我猜空白部分是不够的,应该明确添加一些指令。

    设法添加如下排除项:

    location ~* "^/(?!wp-admin/|wp-includes/).*\.(jpg|js|css)$" { #shortened
    etag on;
    if_modified_since exact;
    add_header Pragma "public";
    add_header Cache-Control "max-age=31536000, public";
    }
    

    【讨论】:

    • 这本身就破坏了整个 wp-admin
    • 是的。它只需要一个小调整就可以排除同样位于/wp/ 下的 wp-includes。必须是location ~* "^/(?!wp-admin/|wp-includes/).*\
    • 太棒了! )
    猜你喜欢
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 2012-11-30
    相关资源
    最近更新 更多