В настоящее время я предварительно загружаю файлы шрифтов для одной веб-страницы в 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 и т. Д., Но без радости.
Правильно ли я думаю, что дело не в синтаксисе, а в том, что нужно разрешить, прежде чем он заработает?
Это синтаксис ...
В <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_FONT
переменная окружения, установленная предыдущим SetEnvIf
директива, также установлена.