.htaccessのファイルディレクティブを使用してリンクをプリロードします
現在、WordPressの1つのWebページのフォントファイルをプリロードしています。
したがって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
ディレクティブで設定された環境変数も設定されている場合にのみ設定されます。