Files
SimpleNav/assets/.htaccess
T

30 lines
1.3 KiB
ApacheConf
Raw Normal View History

# ---------------------------------------------------------------------------
# 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