Подключение шрифтов с другого домена

Как и кроссдоменные запросы AJAX, подключение шрифтов с другого домена или поддомена по умолчанию запрещены и вызывают ошибку:

Access to font at ... from origin ... has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Чтобы разрешить доступ к шрифтам на ресурсе донора, нужно убедится что у Apache включён модуль mod_headers, посмотреть можно в phpinfo():

Включить модуль через SSH:

a2enmod headers

Отключение модуля:

a2dismod headers

Перезагрузка Apache:

/etc/init.d/apache2 restart

Далее нужно добавить запись в файл .htaccess, на сайте, от куда берется шрифт.

<FilesMatch "\.(ttf|otf|woff|woff2)$">
	Header set Access-Control-Allow-Origin "*"
</FilesMatch>
htaccess

* – разрешает доступ со всех ресурсов, поэтому стоит ограничиться только своим доменом:

<FilesMatch "\.(ttf|otf|woff|woff2)$">
	Header set Access-Control-Allow-Origin "https://example.com"
</FilesMatch>
htaccess

Проверить отправку заголовка можно в DevTools браузера:

Также существуют параметры:

Access-Control-Allow-Methods – определяет разрешенные методы при обращении к ресурсу.

Header set Access-Control-Allow-Methods: "POST, GET, OPTIONS"
htaccess

Access-Control-Allow-Headers – список заголовков разрешенных в запросе.

Header set Access-Control-Allow-Headers: "X-PINGOTHER, Content-Type"
htaccess

PHP

Если фалы отдаются через PHP, то данные заголовки отправляются с помощью функции header():

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: X-Requested-With, content-type');
PHP
18.02.2020 , обновлено 08.03.2020

Комментарии

, чтобы добавить комментарий.

Другие публикации

Переезд сайта на HTTPS
В последнее время вопрос переезда сайта с HTTP на HTTPS перешел из рекомендаций в необходимость, как со стороны поисковиков, так и браузеров.
21.02.2020
628
0
Редиректы в htaccess
Как сделать seo редиректы на www или без него, добавление/удаление расширений у страниц.
01.11.2016
2024
0
Редирект на HTTPS
Как настроить перенаправление с HTTP на HTTPS в PHP и .htaccess на разных хостингах.
13.03.2019
4290
0
Массив $_SERVER
Описание значений глобального массива $_SERVER с примерами.
03.10.2018
5285
0
Примеры отправки AJAX JQuery
AJAX позволяет отправить и получить данные без перезагрузки страницы. Например, делать проверку форм, подгружать контент и т.д. А функции JQuery значительно упрощают работу.
23.12.2016
30839
+8
Список Mime
Ниже приведён список MIME-заголовков и расширений файлов.
11.07.2019
1352
+1