Precargar enlace usando la directiva de archivos en .htaccess

Mar 19 2020

Actualmente estoy precargando archivos de fuentes para una página web en WordPress.

Entonces https://example.comno 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

5 MrWhite Mar 19 2020 at 05:14

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 Headercondicionalmente basada en esta variable de entorno.

Esto debería ir antes del controlador frontal de WordPress, cerca de la parte superior de su .htaccessarchivo.

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_FONTargumento adicional al final de la Headerdirectiva. El encabezado solo se establece cuando la PRELOAD_FONTvariable de entorno, establecida por la SetEnvIfdirectiva anterior , también se establece.