Dot-Htaccess

在 .htaccess 中使用 Files 指令預載入連結

  • March 18, 2020

我目前正在為 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 路徑?

您可以在請求此 URL 路徑時使用 mod_setenvif 設置環境變數,然後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/匹配任何 /test/. 如果這應該匹配單個 URL /test/,則將字元串結尾錨附加到正則表達式:^/test/$

env=PRELOAD_FONT請注意指令末尾的額外參數Header。僅目前面的指令PRELOAD_FONT設置的環境變數也設置時,才設置標頭。SetEnvIf

引用自:https://serverfault.com/questions/1007470