使用 .htaccess 中的文件指令预加载链接

使用 .htaccess 中的文件指令预加载链接

我目前正在为 WordPress 上的一个网页预加载字体文件。

所以https://example.com没有预加载。https://example.com/test/预加载字体文件。

这 就是 我 得到 的.htaccess.

<Files "/test/">
Header add Link "</fonts/poppins.woff2>; rel=preload; as=font; type=font/woff2; crossorigin"
</Files>`

链接工作正常,我遇到的困难在于条件加载。尝试添加通配符,加上完整的 URL 等,但毫无效果。

我是否可以正确地认为这不是语法问题,而是需要允许它才能起作用?

答案1

这是语法...

指令<Files>匹配文件名仅(例如foo.php)- 当请求映射到文件系统上的物理文件时。由于这是 WordPress,我假设/test/甚至不是一个文件系统目录 - 它只是一个 URL 路径?

您可以使用 mod_setenvif 在请求此 URL 路径时设置环境变量,然后Header根据此环境变量有条件地设置。

这应该WordPress 前端控制器,位于文件顶部附近.htaccess

例如:

SetEnvIf Request_URI "^/test/" PRELOAD_FONT
Header add Link "</fonts/poppins.woff2>; rel=preload; as=font; type=font/woff2; crossorigin" env=PRELOAD_FONT

正则表达式^/test/匹配任意 URL 路径开始 /test/. 如果这应该仅有的匹配单个 URL /test/,然后将字符串末尾的锚点附加到正则表达式:^/test/$

env=PRELOAD_FONT注意指令末尾的额外参数。仅当前一个指令设置的环境变量也设置Header时,才会设置标头。PRELOAD_FONTSetEnvIf

相关内容