We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
Apache2 CORS (Access-Control-Allow-Origin) для woff/ttf/woff2 шрифтов (enable mod_headers) из под httpS
Apache2 CORS (Access-Control-Allow-Origin) для woff/ttf/woff2 шрифтов (enable mod_headers) из под httpS
Доброго времени.
Установлена Vesta CP v.0.9.8-17 c Apache2 (без nginx).
Столкнулся с проблемой, что woff/woff2/ttf шрифты не загружаются в Chrome (скорее всего будет также и в других браузерах) из httpS (причем с сертификатом от CloudFlare).
В chrome developer tools будет что-то вроде:
Т.е. хром постоянно выдает canceled на такие запросы из-за:
По сути получается, что почему-то CORS запросы работают не так как нужно (если что - на соседнем сайте на http - всё ок).
Нагуглил вот такое решение: https://github.com/fontello/fontello/wi ... erve-fonts
Но, к сожалению, при попытке добавить это в .htaccess - появляется 500 ошибка, в логе отображается следующее:
Проверяю список включенных модулей:
Но! 500 ошибка перестала валится, значит он работает. Но шрифты всё так же не загружаются. Я не правильный заголовок ставлю?
В связи со всем этим квестом у меня вопрос: что я делаю не так и как (возможно) лучше мне включить CORS для https запросов для woff/woff2/ttf шрифтов? Лучше какое-то универсальное решение через .htaccess, чтобы и на http горя не хапнуть, и на httpS всё заработало.
PS: кеш в cloudflare сбрасывал, не помогло. Думал ответ сервера закешировался там.
Установлена Vesta CP v.0.9.8-17 c Apache2 (без nginx).
Столкнулся с проблемой, что woff/woff2/ttf шрифты не загружаются в Chrome (скорее всего будет также и в других браузерах) из httpS (причем с сертификатом от CloudFlare).
В chrome developer tools будет что-то вроде:
Т.е. хром постоянно выдает canceled на такие запросы из-за:
По сути получается, что почему-то CORS запросы работают не так как нужно (если что - на соседнем сайте на http - всё ок).
Нагуглил вот такое решение: https://github.com/fontello/fontello/wi ... erve-fonts
Code: Select all
<FilesMatch ".(eot|ttf|otf|woff|woff2)">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
Т.е. почему-то по дефолту в Apache2 не включен модуль mod_headers.c (почему?).[Thu Apr 27 11:58:43.329575 2017] [core:alert] [pid 23102] [client Х.Y.Z.A:17004] /home/admin/web/DOMAIN/public_html/public/.htaccess: Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration
Проверяю список включенных модулей:
Смотрю можно ли установить:root@m:/home/adminas/conf/web# apache2 -l
Compiled in modules:
core.c
mod_so.c
mod_watchdog.c
http_core.c
mod_log_config.c
mod_logio.c
mod_version.c
mod_unixd.c
Включаю:adminas@m:~/web/DOMAIN/public_html/public$ a2enmod
Your choices are: access_compat actions alias allowmethods asis auth_basic auth_digest auth_form authn_anon authn_core authn_dbd authn_dbm authn_file authn_socache authnz_fcgi authnz_ldap authz_core authz_dbd authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex buffer cache cache_disk cache_socache cgi cgid charset_lite data dav dav_fs dav_lock dbd deflate dialup dir dump_io echo env expires ext_filter fcgid file_cache filter headers heartbeat heartmonitor ident include info lbmethod_bybusyness lbmethod_byrequests lbmethod_bytraffic lbmethod_heartbeat ldap log_debug log_forensic lua macro mime mime_magic mpm_event mpm_prefork mpm_worker negotiation php7.0 proxy proxy_ajp proxy_balancer proxy_connect proxy_express proxy_fcgi proxy_fdpass proxy_ftp proxy_html proxy_http proxy_scgi proxy_wstunnel ratelimit reflector remoteip reqtimeout request rewrite rpaf ruid2 sed session session_cookie session_crypto session_dbd setenvif slotmem_plain slotmem_shm socache_dbm socache_memcache socache_shmcb speling ssl status substitute suexec unique_id userdir usertrack vhost_alias xml2enc
Which module(s) do you want to enable (wildcards ok)?
После чего делаю ребут апача, проверяю заново список модулей и... Модуль там не появился! Судя по всему, я не правильно интерпретировал вывод apache2 -l.root@m:/home/adminas/conf/web# a2enmod headers
Но! 500 ошибка перестала валится, значит он работает. Но шрифты всё так же не загружаются. Я не правильный заголовок ставлю?
В связи со всем этим квестом у меня вопрос: что я делаю не так и как (возможно) лучше мне включить CORS для https запросов для woff/woff2/ttf шрифтов? Лучше какое-то универсальное решение через .htaccess, чтобы и на http горя не хапнуть, и на httpS всё заработало.
PS: кеш в cloudflare сбрасывал, не помогло. Думал ответ сервера закешировался там.
Last edited by LAlf on Thu Apr 27, 2017 11:45 am, edited 1 time in total.
Re: Apache2 CORS (Access-Control-Allow-Origin) для woff/ttf/woff2 шрифтов (enable mod_headers)
Проблема решилась, добавил нужные mime-types из мануала с github (есть в посте выше) + http://stackoverflow.com/questions/7748 ... over-https и всё заработало. Толком не понял что помогло в итоге, т.к. сейчас когда убрал и то и другое - всё равно всё грузится хорошо.
Если найду точное решение - напишу.
Если найду точное решение - напишу.
Re: Apache2 CORS (Access-Control-Allow-Origin) для woff/ttf/woff2 шрифтов (enable mod_headers) из под httpS
Судя по всему - когда тестировал, где-то что-то закешировалось.
Проверил на новом сайте - вот такое решение в .htaccess (есессно, с предварительно включенным mod_headers на сервере в апаче):
- работает.
Проверил на новом сайте - вот такое решение в .htaccess (есессно, с предварительно включенным mod_headers на сервере в апаче):
Code: Select all
<FilesMatch ".(eot|ttf|otf|woff|woff2)">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>