30 lines
1.3 KiB
ApacheConf
30 lines
1.3 KiB
ApacheConf
# ---------------------------------------------------------------------------
|
|||
|
|
# SimpleNav —— assets/ 静态资源缓存策略
|
||
|
|
#
|
||
|
|
# 背景与理由:
|
||
|
|
# PHP 动态页面统一用 send_no_cache() 声明「不要缓存」;而 CSS / JS / 图标 /
|
||
|
|
# 字体这类静态资源如果也不缓存,每次访问都要重新下载一遍,白白浪费带宽。
|
||
|
|
# 这里采用「长缓存 + 版本号」策略:页面引用资源时一律带 ?v=<mtime>-<size>
|
||
|
|
# (见 functions.php 的 asset() / icon_src()),文件内容一变版本号就变,
|
||
|
|
# 浏览器自然会重新拉取,所以可以放心地给一年缓存。
|
||
|
|
#
|
||
|
|
# 注意:本目录下的文件不会被 Nginx 的 fastcgi_cache 影响(不经过 PHP)。
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
<IfModule mod_headers.c>
|
||
|
|
<FilesMatch "\.(css|js|mjs|png|jpg|jpeg|gif|svg|webp|avif|ico|woff|woff2|ttf|otf|eot|webmanifest)$">
|
||
|
|
Header set Cache-Control "public, max-age=31536000, immutable"
|
||
|
|
</FilesMatch>
|
||
|
|
</IfModule>
|
||
|
|
|
||
|
|
# 禁止在静态目录执行脚本
|
||
|
|
<FilesMatch "\.(php|phtml|phar|pl|py|cgi|asp|jsp|sh)$">
|
||
|
|
<IfModule mod_authz_core.c>
|
||
|
|
Require all denied
|
||
|
|
</IfModule>
|
||
|
|
<IfModule !mod_authz_core.c>
|
||
|
|
Order allow,deny
|
||
|
|
Deny from all
|
||
|
|
</IfModule>
|
||
|
|
</FilesMatch>
|
||
|
|
Options -ExecCGI
|