Precargar enlace usando la directiva de archivos en .htaccess
Actualmente estoy precargando archivos de fuentes para una página web en WordPress.
Entonces https://example.com
no precargado. https://example.com/test/
archivo de fuente precargado.
Esto es lo que tengo .htaccess
.
<Files "/test/">
Header add Link "</fonts/poppins.woff2>; rel=preload; as=font; type=font/woff2; crossorigin"
</Files>`
El enlace funciona bien, es la carga condicional con la que estoy luchando. Intenté agregar comodines, más la URL completa, etc., pero no me gustó.
¿Estoy en lo cierto al pensar que no es la sintaxis, pero es necesario permitirlo antes de que funcione?
Respuestas
Es la sintaxis ...
La <Files>
directiva coincide solo con los nombres de archivo (por ejemplo foo.php
), cuando la solicitud se asigna a archivos físicos en el sistema de archivos. Dado que esto es WordPress, supongo /test/
que ni siquiera es un directorio del sistema de archivos, ¿es simplemente una ruta de URL?
Puede usar mod_setenvif para establecer una variable de entorno cuando se solicita esta ruta de URL y luego establecer la Header
condicionalmente basada en esta variable de entorno.
Esto debería ir antes del controlador frontal de WordPress, cerca de la parte superior de su .htaccess
archivo.
Por ejemplo:
SetEnvIf Request_URI "^/test/" PRELOAD_FONT
Header add Link "</fonts/poppins.woff2>; rel=preload; as=font; type=font/woff2; crossorigin" env=PRELOAD_FONT
La expresión regular ^/test/
coincide con cualquier ruta URL que comience /test/
. Si esto solamente que coincida con la única URL /test/
a continuación, añadir un ancla al final de la cadena a la expresión regular: ^/test/$
.
Tenga en cuenta el env=PRELOAD_FONT
argumento adicional al final de la Header
directiva. El encabezado solo se establece cuando la PRELOAD_FONT
variable de entorno, establecida por la SetEnvIf
directiva anterior , también se establece.